Overview

merging background and presence data into one giant dataset, and timesliced subsets

A note to anyone who might happen to stumble across this… I am a beginner in R and have had no exposure to similar languages. I don’t know what I’m doing. The code herein is unlikely to be elegant and there are probably more efficient ways of running the code.

Built with ‘r getRversion()’.

Package dependencies

You can load them using the following code which uses a function called ipak. Note this function checks to see if the packages are installed first.

packages <- c("plyr") 
source("./src/ipak.R")
ipak(packages)
plyr 
TRUE 

read in the presence and background

presencemerging <- read.csv("../output/bio/presence_points_without_envdata_relooped_glbathy_nodup.csv", header = TRUE)
backgroundmerging <- read.csv("../output/bio/background_complete_obs_cels_globot_cellid_xyzt.csv", header = TRUE)
nrow(test200301a)
[1] 5228

now check

colnames(presencemerging)
 [1] "cell_id"                "year"                   "month"                  "depthlayerno"           "id"                     "decimalLatitude"        "decimalLongitude"      
 [8] "datecollected"          "institutioncode"        "individualcount"        "depth"                  "resname"                "originalscientificname" "collectioncode"        
[15] "day"                    "occurrence"             "nafo_zone"              "gear"                   "longitude_meters"       "latitude_meters"        "amo_sample"            
[22] "amo_prev"               "amo_winter"             "depth_layer"            "bottom_depth"           "total_cell_obs"         "yymm_cell_obs"          "chl_surface"           
[29] "chl_depth"              "mlp_surface"            "o2_surface"             "o2_depth"               "salinity_surface"       "salinity_depth"         "ssh_surface"           
[36] "temp_surface"           "temp_depth"             "nao_sample"             "nao_prev"               "nao_winter"             "XXtotal_cell_obs_xyzt"  "temp_celsius_depth"    
[43] "temp_celsius_surface"   "longitude_meters.1"     "latitude_meters.1"      "bottom_depth_glorys"    "longitude_meters.2"     "latitude_meters.2"      "cell_id_3d"            
[50] "cell_id_xyzt"           "total_cell_obs_xyzt"   
colnames(backgroundmerging)
 [1] "cell_id"                "year"                   "month"                  "depthlayerno"           "X"                      "longitude_meters"       "latitude_meters"       
 [8] "decimalLongitude"       "decimalLatitude"        "nafo_zone"              "id"                     "originalscientificname" "amo_sample"             "amo_prev"              
[15] "amo_winter"             "nao_sample"             "nao_prev"               "nao_winter"             "depth_layer"            "bottom_depth"           "total_cell_obs_xy"     
[22] "total_cell_obs_xyt"     "total_cell_obs_xyzt"    "temp_depth"             "temp_surface"           "salinity_depth"         "salinity_surface"       "chl_depth"             
[29] "chl_surface"            "o2_depth"               "o2_surface"             "mlp_surface"            "ssh_surface"            "longitude_meters.1"     "latitude_meters.1"     
[36] "optional"               "occurrence"             "temp_celsius_depth"     "temp_celsius_surface"   "bottom_depth_glorys"    "longitude_meters.2"     "latitude_meters.2"     
[43] "optional.1"             "cell_id_3d"             "cell_id_xyzt"          

ok so the two dataframed need a spot of cleaning

presencemerging <- subset(presencemerging, select = -c(longitude_meters.1, latitude_meters.1, longitude_meters.2, latitude_meters.2, XXtotal_cell_obs_xyzt))
Error in eval(substitute(select), nl, parent.frame()) : 
  object 'longitude_meters.1' not found

for consistency, rename a couple of presencemerging columns

names(presencemerging)[names(presencemerging)=="total_cell_obs"] <- "total_cell_obs_xy"
names(presencemerging)[names(presencemerging)=="yymm_cell_obs"] <- "total_cell_obs_xyt"

now merge the two datasets

presab <- rbind.fill(presencemerging, backgroundmerging)
write.csv(presab, "../output/bio/presab.csv", row.names = FALSE)
head(presab)

lovely jubley

weighted 10k for each month

For each month, the 10,000 background points will be garnered from background points created for each month-year and weighted to the observations. For example, for January 22% of the unique observations by cell occurred in 2003, 49% in 2004, 7% in 2005, and 21% in 2006. Thus, 22% of the background points for the January model will come from 2003, 49% from 2004, 7% in 2005, and 21% in 2006. See ‘Percentage of occurrences by unique cell (xyzt)’ in Appendix Observations per Cell in results document + excel + data_exploration.

Some other analysis has indicated that background points have been gathered from 1BCDEF (ouside Canada EEZ and inside Greenland EEZ). Just do a table here

nrow(nafo1)
[1] 139235

and the spread of these funny nafo points in year month…

nafo1_yymm <- with(nafo1, table(year, month))
write.csv(nafo1_yymm, file = "../output/bio/background_nafo1x_mth_yr.csv")
nafo1_yymm
      month
year     1   2   3   4   5   6   7   8   9  10  11  12
  1998   0   0   0 932 848 897 936   0 914 952 896 868
  1999   0   0 878 909 910 900 885   0 895 950 889 911
  2000   0   0 968 925 910 908 907   0 958 922 903 916
  2001   0 902 941 963 935 933 965   0 906 871 923 914
  2002   0   0 905 929 918 905 922   0 941 903 906 872
  2003   0   0 864 873 895 910 935   0 913 878 926 907
  2004 902   0   0 889 934 869 927 924 968 932 904 897
  2005 962 865 900 962 877 917 890 901 907 862 872 933
  2006 895 866 926 958 939 898 917 932 914 892 931 881
  2007   0   0 943 902 895 886 947 908 885 920 857 928
  2008   0   0 914 894 931 921 944 913 906 919 934 869
  2009   0   0 867 921 875 835 928 899 974 933 923 912
  2010   0   0 906 869 901 902 875 937 897 851 931 867
  2011   0   0   0 956 924 875 924 946 940 888 904 897
  2012   0   0   0   0   0 921 929 918 890   0   0   0
  2013   0   0   0   0   0   0 949 892 924 876 935   0
  2014   0   0   0   0   0   0 865 897 953 941   0   0
  2015   0   0   0   0   0   0   0 876 921   0 890   0

ok so nothing too crazy… lets remove these nafo 1x points from the dataset

nafounique <- unique(backno1$nafo_zone)
nafounique
 [1] 3Ps          0A           0B           2H           2J           3O           3L           2G           4Vn          3K           4S           3N           4Vs         
[14] 4W           3M           4R           5Y           HudsonStrait 4T           4X           5Ze          3Pn         
Levels: 0A 0B 1B 1C 1D 1E 1F 2G 2H 2J 3K 3L 3M 3N 3O 3Pn 3Ps 4R 4S 4T 4Vn 4Vs 4W 4X 5Y 5Ze HudsonStrait

ok now randomly select background points from each timeslice as per this table (see results doc appendix observations per cell + excel spreadsheet)

    1   2   3   4   5   6   7   8   9   10  11  12

1998 0 0 0 846 790 835 518 0 358 1315 1123 107 1999 0 0 1433 603 595 968 648 0 620 169 835 551 2000 0 0 1277 603 537 746 492 0 652 590 1025 725 2001 0 5000 748 990 751 637 389 0 390 405 495 1430 2002 0 0 996 1062 761 676 440 0 811 624 420 966 2003 2222 0 717 1004 888 809 492 0 318 590 311 1014 2004 4938 0 0 732 790 797 674 1004 652 472 604 1101 2005 700 4000 872 316 644 676 1010 1270 556 776 858 416 2006 2140 1000 1558 301 49 790 674 1410 588 1096 616 783 2007 0 0 623 746 508 593 1813 1404 636 624 553 821 2008 0 0 934 516 741 797 777 1418 564 455 748 589 2009 0 0 312 946 1405 351 207 582 580 556 915 454 2010 0 0 530 560 663 720 648 596 747 1096 875 560 2011 0 0 0 775 878 605 285 758 533 1062 593 483 2012 0 0 0 0 0 0 208 793 604 0 0 0 2013 0 0 0 0 0 0 699 660 509 119 12 0 2014 0 0 0 0 0 0 26 77 818 51 0 0 2015 0 0 0 0 0 0 0 28 64 0 17 0 Total 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000 10000

Ok so for Jan: 2003: 2222 XXXXX THIS IS MISSING!!!! 2004: 4938 2005: 700 2006: 2140

nrow(jan2004)
[1] 4938

for feb 2001: 5000 2005: 4000 2006: 1000

feb2001 <- subset(backno1, year == "2001" & month == "2")
feb2001 <- sample_n(feb2001, 5000) 
feb2005 <- subset(backno1, year == "2005" & month == "2")
feb2005 <- sample_n(feb2005, 4000) 
feb2006 <- subset(backno1, year == "2006" & month == "2")
feb2006 <- sample_n(feb2006, 1000) 
feb <- rbind(feb2001, feb2005, feb2006)

for march 1999 1433 2000 1277 2001 748 2002 996 2003 717 2005 872 2006 1558 2007 623 2008 934 2009 312 2010 530

mar1999 <- subset(backno1, year == "1999" & month == "3")
mar1999 <- sample_n(mar1999, 1433) 
mar2000 <- subset(backno1, year == "2000" & month == "3")
mar2000 <- sample_n(mar2000, 1277) 
mar2001 <- subset(backno1, year == "2001" & month == "3")
mar2001 <- sample_n(mar2001, 748)
mar2002 <- subset(backno1, year == "2002" & month == "3")
mar2002 <- sample_n(mar2002, 996)
mar2003 <- subset(backno1, year == "2003" & month == "3")
mar2003 <- sample_n(mar2003, 717)
mar2005 <- subset(backno1, year == "2005" & month == "3")
mar2005 <- sample_n(mar2005, 872)
mar2006 <- subset(backno1, year == "2006" & month == "3")
mar2006 <- sample_n(mar2006, 1558)
mar2007 <- subset(backno1, year == "2007" & month == "3")
mar2007 <- sample_n(mar2007, 623)
mar2008 <- subset(backno1, year == "2008" & month == "3")
mar2008 <- sample_n(mar2008, 934)
mar2009 <- subset(backno1, year == "2009" & month == "3")
mar2009 <- sample_n(mar2009, 312)
mar2010 <- subset(backno1, year == "2010" & month == "3")
mar2010 <- sample_n(mar2010, 530)
mar <- rbind(mar1999, mar2000, mar2001, mar2002, mar2003, mar2005, mar2006, mar2007, mar2008, mar2009, mar2010)

For april 1998 846 1999 603 2000 603 2001 990 2002 1062 2003 1004 2004 732 2005 316 2006 301 2007 746 2008 516 2009 946 2010 560 2011 775

apr1998 <- subset(backno1, year == "1998" & month == "4")
apr1998 <- sample_n(apr1998, 846) 
apr1999 <- subset(backno1, year == "1999" & month == "4")
apr1999 <- sample_n(apr1999, 603) 
apr2000 <- subset(backno1, year == "2000" & month == "4")
apr2000 <- sample_n(apr2000, 603) 
apr2001 <- subset(backno1, year == "2001" & month == "4")
apr2001 <- sample_n(apr2001, 990)
apr2002 <- subset(backno1, year == "2002" & month == "4")
apr2002 <- sample_n(apr2002, 1062)
apr2003 <- subset(backno1, year == "2003" & month == "4")
apr2003 <- sample_n(apr2003, 1004)
apr2004 <- subset(backno1, year == "2004" & month == "4")
apr2004 <- sample_n(apr2004, 732)
apr2005 <- subset(backno1, year == "2005" & month == "4")
apr2005 <- sample_n(apr2005, 316)
apr2006 <- subset(backno1, year == "2006" & month == "4")
apr2006 <- sample_n(apr2006, 301)
apr2007 <- subset(backno1, year == "2007" & month == "4")
apr2007 <- sample_n(apr2007, 746)
apr2008 <- subset(backno1, year == "2008" & month == "4")
apr2008 <- sample_n(apr2008, 516)
apr2009 <- subset(backno1, year == "2009" & month == "4")
apr2009 <- sample_n(apr2009, 946)
apr2010 <- subset(backno1, year == "2010" & month == "4")
apr2010 <- sample_n(apr2010, 560)
apr2011 <- subset(backno1, year == "2011" & month == "4")
apr2011 <- sample_n(apr2011, 775)
apr <- rbind(apr1998, apr1999, apr2000, apr2001, apr2002, apr2003, apr2004, apr2005, apr2006, apr2007, apr2008, apr2009, apr2010, apr2011)

For May 1998 790 1999 595 2000 537 2001 751 2002 761 2003 888 2004 790 2005 644 2006 49 2007 508 2008 741 2009 1405 2010 663 2011 878

may1998 <- subset(backno1, year == "1998" & month == "5")
may1998 <- sample_n(may1998, 790) 
may1999 <- subset(backno1, year == "1999" & month == "5")
may1999 <- sample_n(may1999, 595) 
may2000 <- subset(backno1, year == "2000" & month == "5")
may2000 <- sample_n(may2000, 537) 
may2001 <- subset(backno1, year == "2001" & month == "5")
may2001 <- sample_n(may2001, 751)
may2002 <- subset(backno1, year == "2002" & month == "5")
may2002 <- sample_n(may2002, 761)
may2003 <- subset(backno1, year == "2003" & month == "5")
may2003 <- sample_n(may2003, 888)
may2004 <- subset(backno1, year == "2004" & month == "5")
may2004 <- sample_n(may2004, 790)
may2005 <- subset(backno1, year == "2005" & month == "5")
may2005 <- sample_n(may2005, 644)
may2006 <- subset(backno1, year == "2006" & month == "5")
may2006 <- sample_n(may2006, 49)
may2007 <- subset(backno1, year == "2007" & month == "5")
may2007 <- sample_n(may2007, 508)
may2008 <- subset(backno1, year == "2008" & month == "5")
may2008 <- sample_n(may2008, 741)
may2009 <- subset(backno1, year == "2009" & month == "5")
may2009 <- sample_n(may2009, 1405)
may2010 <- subset(backno1, year == "2010" & month == "5")
may2010 <- sample_n(may2010, 663)
may2011 <- subset(backno1, year == "2011" & month == "5")
may2011 <- sample_n(may2011, 878)
may <- rbind(may1998, may1999, may2000, may2001, may2002, may2003, may2004, may2005, may2006, may2007, may2008, may2009, may2010, may2011)

for June

1998 835 1999 968 2000 746 2001 637 2002 676 2003 809 2004 797 2005 676 2006 790 2007 593 2008 797 2009 351 2010 720 2011 605

jun1998 <- subset(backno1, year == "1998" & month == "6")
jun1998 <- sample_n(jun1998, 835) 
jun1999 <- subset(backno1, year == "1999" & month == "6")
jun1999 <- sample_n(jun1999, 968) 
jun2000 <- subset(backno1, year == "2000" & month == "6")
jun2000 <- sample_n(jun2000, 746) 
jun2001 <- subset(backno1, year == "2001" & month == "6")
jun2001 <- sample_n(jun2001, 637)
jun2002 <- subset(backno1, year == "2002" & month == "6")
jun2002 <- sample_n(jun2002, 676)
jun2003 <- subset(backno1, year == "2003" & month == "6")
jun2003 <- sample_n(jun2003, 809)
jun2004 <- subset(backno1, year == "2004" & month == "6")
jun2004 <- sample_n(jun2004, 797)
jun2005 <- subset(backno1, year == "2005" & month == "6")
jun2005 <- sample_n(jun2005, 676)
jun2006 <- subset(backno1, year == "2006" & month == "6")
jun2006 <- sample_n(jun2006, 790)
jun2007 <- subset(backno1, year == "2007" & month == "6")
jun2007 <- sample_n(jun2007, 593)
jun2008 <- subset(backno1, year == "2008" & month == "6")
jun2008 <- sample_n(jun2008, 797)
jun2009 <- subset(backno1, year == "2009" & month == "6")
jun2009 <- sample_n(jun2009, 351)
jun2010 <- subset(backno1, year == "2010" & month == "6")
jun2010 <- sample_n(jun2010, 720)
jun2011 <- subset(backno1, year == "2011" & month == "6")
jun2011 <- sample_n(jun2011, 605)
jun <- rbind(jun1998, jun1999, jun2000, jun2001, jun2002, jun2003, jun2004, jun2005, jun2006, jun2007, jun2008, jun2009, jun2010, jun2011)

July

1998 518 1999 648 2000 492 2001 389 2002 440 2003 492 2004 674 2005 1010 2006 674 2007 1813 2008 777 2009 207 2010 648 2011 285 2012 208 2013 699 2014 26

jul1998 <- subset(backno1, year == "1998" & month == "7")
jul1998 <- sample_n(jul1998, 518) 
jul1999 <- subset(backno1, year == "1999" & month == "7")
jul1999 <- sample_n(jul1999, 648) 
jul2000 <- subset(backno1, year == "2000" & month == "7")
jul2000 <- sample_n(jul2000, 492) 
jul2001 <- subset(backno1, year == "2001" & month == "7")
jul2001 <- sample_n(jul2001, 389)
jul2002 <- subset(backno1, year == "2002" & month == "7")
jul2002 <- sample_n(jul2002, 440)
jul2003 <- subset(backno1, year == "2003" & month == "7")
jul2003 <- sample_n(jul2003, 492)
jul2004 <- subset(backno1, year == "2004" & month == "7")
jul2004 <- sample_n(jul2004, 674)
jul2005 <- subset(backno1, year == "2005" & month == "7")
jul2005 <- sample_n(jul2005, 1010)
jul2006 <- subset(backno1, year == "2006" & month == "7")
jul2006 <- sample_n(jul2006, 674)
jul2007 <- subset(backno1, year == "2007" & month == "7")
jul2007 <- sample_n(jul2007, 1813)
jul2008 <- subset(backno1, year == "2008" & month == "7")
jul2008 <- sample_n(jul2008, 777)
jul2009 <- subset(backno1, year == "2009" & month == "7")
jul2009 <- sample_n(jul2009, 207)
jul2010 <- subset(backno1, year == "2010" & month == "7")
jul2010 <- sample_n(jul2010, 648)
jul2011 <- subset(backno1, year == "2011" & month == "7")
jul2011 <- sample_n(jul2011, 285)
jul2012 <- subset(backno1, year == "2012" & month == "7")
jul2012 <- sample_n(jul2012, 208)
jul2013 <- subset(backno1, year == "2013" & month == "7")
jul2013 <- sample_n(jul2013, 699)
jul2014 <- subset(backno1, year == "2014" & month == "7")
jul2014 <- sample_n(jul2014, 26)
jul <- rbind(jul1998, jul1999, jul2000, jul2001, jul2002, jul2003, jul2004, jul2005, jul2006, jul2007, jul2008, jul2009, jul2010, jul2011, jul2012, jul2013, jul2014)

For Aug 2004 1004 2005 1270 2006 1410 2007 1404 2008 1418 2009 582 2010 596 2011 758 2012 793 2013 660 2014 77 2015 28

aug2004 <- subset(backno1, year == "2004" & month == "8")
aug2004 <- sample_n(aug2004, 1004)
aug2005 <- subset(backno1, year == "2005" & month == "8")
aug2005 <- sample_n(aug2005, 1270)
aug2006 <- subset(backno1, year == "2006" & month == "8")
aug2006 <- sample_n(aug2006, 1410)
aug2007 <- subset(backno1, year == "2007" & month == "8")
aug2007 <- sample_n(aug2007, 1404)
aug2008 <- subset(backno1, year == "2008" & month == "8")
aug2008 <- sample_n(aug2008, 1418)
aug2009 <- subset(backno1, year == "2009" & month == "8")
aug2009 <- sample_n(aug2009, 582)
aug2010 <- subset(backno1, year == "2010" & month == "8")
aug2010 <- sample_n(aug2010, 596)
aug2011 <- subset(backno1, year == "2011" & month == "8")
aug2011 <- sample_n(aug2011, 758)
aug2012 <- subset(backno1, year == "2012" & month == "8")
aug2012 <- sample_n(aug2012, 793)
aug2013 <- subset(backno1, year == "2013" & month == "8")
aug2013 <- sample_n(aug2013, 660)
aug2014 <- subset(backno1, year == "2014" & month == "8")
aug2014 <- sample_n(aug2014, 77)
aug2015 <- subset(backno1, year == "2015" & month == "8")
aug2015 <- sample_n(aug2015, 28)
aug <- rbind(aug2004, aug2005, aug2006, aug2007, aug2008, aug2009, aug2010, aug2011, aug2012, aug2013, aug2014, aug2015)

For sep 1998 358 1999 620 2000 652 2001 390 2002 811 2003 318 2004 652 2005 556 2006 588 2007 636 2008 564 2009 580 2010 747 2011 533 2012 604 2013 509 2014 818 2015 64

sep1998 <- subset(backno1, year == "1998" & month == "9")
sep1998 <- sample_n(sep1998, 358) 
sep1999 <- subset(backno1, year == "1999" & month == "9")
sep1999 <- sample_n(sep1999, 620) 
sep2000 <- subset(backno1, year == "2000" & month == "9")
sep2000 <- sample_n(sep2000, 652) 
sep2001 <- subset(backno1, year == "2001" & month == "9")
sep2001 <- sample_n(sep2001, 390)
sep2002 <- subset(backno1, year == "2002" & month == "9")
sep2002 <- sample_n(sep2002, 811)
sep2003 <- subset(backno1, year == "2003" & month == "9")
sep2003 <- sample_n(sep2003, 318)
sep2004 <- subset(backno1, year == "2004" & month == "9")
sep2004 <- sample_n(sep2004, 652)
sep2005 <- subset(backno1, year == "2005" & month == "9")
sep2005 <- sample_n(sep2005, 556)
sep2006 <- subset(backno1, year == "2006" & month == "9")
sep2006 <- sample_n(sep2006, 588)
sep2007 <- subset(backno1, year == "2007" & month == "9")
sep2007 <- sample_n(sep2007, 636)
sep2008 <- subset(backno1, year == "2008" & month == "9")
sep2008 <- sample_n(sep2008, 564)
sep2009 <- subset(backno1, year == "2009" & month == "9")
sep2009 <- sample_n(sep2009, 580)
sep2010 <- subset(backno1, year == "2010" & month == "9")
sep2010 <- sample_n(sep2010, 747)
sep2011 <- subset(backno1, year == "2011" & month == "9")
sep2011 <- sample_n(sep2011, 533)
sep2012 <- subset(backno1, year == "2012" & month == "9")
sep2012 <- sample_n(sep2012, 604)
sep2013 <- subset(backno1, year == "2013" & month == "9")
sep2013 <- sample_n(sep2013, 509)
sep2014 <- subset(backno1, year == "2014" & month == "9")
sep2014 <- sample_n(sep2014, 818)
sep2015 <- subset(backno1, year == "2015" & month == "9")
sep2015 <- sample_n(sep2015, 64)
sep <- rbind(sep1998, sep1999, sep2000, sep2001, sep2002, sep2003, sep2004, sep2005, sep2006, sep2007, sep2008, sep2009, sep2010, sep2011, sep2012, sep2013, sep2014, sep2015)

For oct 1998 1315 1999 169 2000 590 2001 405 2002 624 2003 590 2004 472 2005 776 2006 1096 2007 624 2008 455 2009 556 2010 1096 2011 1062 2013 119 2014 51

oct1998 <- subset(backno1, year == "1998" & month == "10")
oct1998 <- sample_n(oct1998, 1315) 
oct1999 <- subset(backno1, year == "1999" & month == "10")
oct1999 <- sample_n(oct1999, 169) 
oct2000 <- subset(backno1, year == "2000" & month == "10")
oct2000 <- sample_n(oct2000, 590) 
oct2001 <- subset(backno1, year == "2001" & month == "10")
oct2001 <- sample_n(oct2001, 405)
oct2002 <- subset(backno1, year == "2002" & month == "10")
oct2002 <- sample_n(oct2002, 624)
oct2003 <- subset(backno1, year == "2003" & month == "10")
oct2003 <- sample_n(oct2003, 590)
oct2004 <- subset(backno1, year == "2004" & month == "10")
oct2004 <- sample_n(oct2004, 472)
oct2005 <- subset(backno1, year == "2005" & month == "10")
oct2005 <- sample_n(oct2005, 776)
oct2006 <- subset(backno1, year == "2006" & month == "10")
oct2006 <- sample_n(oct2006, 1096)
oct2007 <- subset(backno1, year == "2007" & month == "10")
oct2007 <- sample_n(oct2007, 624)
oct2008 <- subset(backno1, year == "2008" & month == "10")
oct2008 <- sample_n(oct2008, 455)
oct2009 <- subset(backno1, year == "2009" & month == "10")
oct2009 <- sample_n(oct2009, 556)
oct2010 <- subset(backno1, year == "2010" & month == "10")
oct2010 <- sample_n(oct2010, 1096)
oct2011 <- subset(backno1, year == "2011" & month == "10")
oct2011 <- sample_n(oct2011, 1062)
oct2013 <- subset(backno1, year == "2013" & month == "10")
oct2013 <- sample_n(oct2013, 119)
oct2014 <- subset(backno1, year == "2014" & month == "10")
oct2014 <- sample_n(oct2014, 51)
oct <- rbind(oct1998, oct1999, oct2000, oct2001, oct2002, oct2003, oct2004, oct2005, oct2006, oct2007, oct2008, oct2009, oct2010, oct2011, oct2013, oct2014)

Nov 1998 1123 1999 835 2000 1025 2001 495 2002 420 2003 311 2004 604 2005 858 2006 616 2007 553 2008 748 2009 915 2010 875 2011 593 2013 12 2015 17

nov1998 <- subset(backno1, year == "1998" & month == "11")
nov1998 <- sample_n(nov1998, 1123) 
nov1999 <- subset(backno1, year == "1999" & month == "11")
nov1999 <- sample_n(nov1999, 835) 
nov2000 <- subset(backno1, year == "2000" & month == "11")
nov2000 <- sample_n(nov2000, 1025) 
nov2001 <- subset(backno1, year == "2001" & month == "11")
nov2001 <- sample_n(nov2001, 495)
nov2002 <- subset(backno1, year == "2002" & month == "11")
nov2002 <- sample_n(nov2002, 420)
nov2003 <- subset(backno1, year == "2003" & month == "11")
nov2003 <- sample_n(nov2003, 311)
nov2004 <- subset(backno1, year == "2004" & month == "11")
nov2004 <- sample_n(nov2004, 604)
nov2005 <- subset(backno1, year == "2005" & month == "11")
nov2005 <- sample_n(nov2005, 858)
nov2006 <- subset(backno1, year == "2006" & month == "11")
nov2006 <- sample_n(nov2006, 616)
nov2007 <- subset(backno1, year == "2007" & month == "11")
nov2007 <- sample_n(nov2007, 553)
nov2008 <- subset(backno1, year == "2008" & month == "11")
nov2008 <- sample_n(nov2008, 748)
nov2009 <- subset(backno1, year == "2009" & month == "11")
nov2009 <- sample_n(nov2009, 915)
nov2010 <- subset(backno1, year == "2010" & month == "11")
nov2010 <- sample_n(nov2010, 875)
nov2011 <- subset(backno1, year == "2011" & month == "11")
nov2011 <- sample_n(nov2011, 593)
nov2013 <- subset(backno1, year == "2013" & month == "11")
nov2013 <- sample_n(nov2013, 12)
nov2015 <- subset(backno1, year == "2015" & month == "11")
nov2015 <- sample_n(nov2015, 17)
nov <- rbind(nov1998, nov1999, nov2000, nov2001, nov2002, nov2003, nov2004, nov2005, nov2006, nov2007, nov2008, nov2009, nov2010, nov2011, nov2013, nov2015)

Dec 1998 107 1999 551 2000 725 2001 1430 2002 966 2003 1014 2004 1101 2005 416 2006 783 2007 821 2008 589 2009 454 2010 560 2011 483

dec1998 <- subset(backno1, year == "1998" & month == "12")
dec1998 <- sample_n(dec1998, 107) 
dec1999 <- subset(backno1, year == "1999" & month == "12")
dec1999 <- sample_n(dec1999, 551) 
dec2000 <- subset(backno1, year == "2000" & month == "12")
dec2000 <- sample_n(dec2000, 725) 
dec2001 <- subset(backno1, year == "2001" & month == "12")
dec2001 <- sample_n(dec2001, 1430)
dec2002 <- subset(backno1, year == "2002" & month == "12")
dec2002 <- sample_n(dec2002, 966)
dec2003 <- subset(backno1, year == "2003" & month == "12")
dec2003 <- sample_n(dec2003, 1014)
dec2004 <- subset(backno1, year == "2004" & month == "12")
dec2004 <- sample_n(dec2004, 1101)
dec2005 <- subset(backno1, year == "2005" & month == "12")
dec2005 <- sample_n(dec2005, 416)
dec2006 <- subset(backno1, year == "2006" & month == "12")
dec2006 <- sample_n(dec2006, 783)
dec2007 <- subset(backno1, year == "2007" & month == "12")
dec2007 <- sample_n(dec2007, 821)
dec2008 <- subset(backno1, year == "2008" & month == "12")
dec2008 <- sample_n(dec2008, 589)
dec2009 <- subset(backno1, year == "2009" & month == "12")
dec2009 <- sample_n(dec2009, 454)
dec2010 <- subset(backno1, year == "2010" & month == "12")
dec2010 <- sample_n(dec2010, 560)
dec2011 <- subset(backno1, year == "2011" & month == "12")
dec2011 <- sample_n(dec2011, 483)
dec <- rbind(dec1998, dec1999, dec2000, dec2001, dec2002, dec2003, dec2004, dec2005, dec2006, dec2007, dec2008, dec2009, dec2010, dec2011)
LS0tDQp0aXRsZTogIm1lcmdpbmdfZGF0YXNldHMiDQphdXRob3I6ICJTYW1hbnRoYSBBbmRyZXdzIg0Kb3V0cHV0OiBodG1sX25vdGVib29rDQotLS0NCg0KIyBPdmVydmlldw0KbWVyZ2luZyBiYWNrZ3JvdW5kIGFuZCBwcmVzZW5jZSBkYXRhIGludG8gb25lIGdpYW50IGRhdGFzZXQsIGFuZCB0aW1lc2xpY2VkIHN1YnNldHMNCg0KDQpBIG5vdGUgdG8gYW55b25lIHdobyBtaWdodCBoYXBwZW4gdG8gc3R1bWJsZSBhY3Jvc3MgdGhpcy4uLiBJIGFtIGEgYmVnaW5uZXIgaW4gUiBhbmQgaGF2ZSBoYWQgbm8gZXhwb3N1cmUgdG8gc2ltaWxhciBsYW5ndWFnZXMuIEkgZG9uJ3Qga25vdyB3aGF0IEknbSBkb2luZy4gVGhlIGNvZGUgaGVyZWluIGlzIHVubGlrZWx5IHRvIGJlIGVsZWdhbnQgYW5kIHRoZXJlIGFyZSBwcm9iYWJseSBtb3JlIGVmZmljaWVudCB3YXlzIG9mIHJ1bm5pbmcgdGhlIGNvZGUuDQoNCkJ1aWx0IHdpdGggJ3IgZ2V0UnZlcnNpb24oKScuDQoNCiMgUGFja2FnZSBkZXBlbmRlbmNpZXMNCllvdSBjYW4gbG9hZCB0aGVtIHVzaW5nIHRoZSBmb2xsb3dpbmcgY29kZSB3aGljaCB1c2VzIGEgZnVuY3Rpb24gY2FsbGVkIFtpcGFrXShodHRwczovL2dpc3QuZ2l0aHViLmNvbS9zdGV2ZW53b3J0aGluZ3Rvbi8zMTc4MTYzKS4gDQpOb3RlIHRoaXMgZnVuY3Rpb24gY2hlY2tzIHRvIHNlZSBpZiB0aGUgcGFja2FnZXMgYXJlIGluc3RhbGxlZCBmaXJzdC4NCmBgYHtyIHByZS1pbnN0YWxsIHBhY2thZ2VzLCBtZXNzYWdlPUZBTFNFfQ0KcGFja2FnZXMgPC0gYygicGx5ciIpIA0Kc291cmNlKCIuLi9zcmMvaXBhay5SIikNCmlwYWsocGFja2FnZXMpDQpgYGANCg0KcmVhZCBpbiB0aGUgcHJlc2VuY2UgYW5kIGJhY2tncm91bmQNCmBgYHtyIHJlYWQgaW4gcHJlc2VuY2UgYW5kIGJhY2tncm91bmR9DQpwcmVzZW5jZW1lcmdpbmcgPC0gcmVhZC5jc3YoIi4uL291dHB1dC9iaW8vcHJlc2VuY2VfcG9pbnRzX3dpdGhvdXRfZW52ZGF0YV9yZWxvb3BlZF9nbGJhdGh5X25vZHVwLmNzdiIsIGhlYWRlciA9IFRSVUUpDQpiYWNrZ3JvdW5kbWVyZ2luZyA8LSByZWFkLmNzdigiLi4vb3V0cHV0L2Jpby9iYWNrZ3JvdW5kX2NvbXBsZXRlX29ic19jZWxzX2dsb2JvdF9jZWxsaWRfeHl6dC5jc3YiLCBoZWFkZXIgPSBUUlVFKQ0KYGBgDQoNCmBgYHtyfQ0KdGVzdGIyMDAzIDwtIHJlYWQuY3N2KCIuLi9vdXRwdXQvYmlvL2JhY2tncm91bmRfY29tcGxldGVfMjAwMF8yMDAzLmNzdiIsIGhlYWRlciA9IFRSVUUpDQp0ZXN0MjAwMzAxIDwtIHN1YnNldCh0ZXN0YjIwMDMsIHllYXIgPT0gIjIwMDMiICYgbW9udGggPT0gIjEiKQ0KaGVhZCh0ZXN0MjAwMzAxKQ0KDQp0ZXN0YmFjayA8LSByZWFkLmNzdigiLi4vb3V0cHV0L2Jpby9iYWNrZ3JvdW5kX2FsbF9jb21wbGV0ZS5jc3YiLCBoZWFkZXIgPSBUUlVFKQ0KDQpoZWFkKHRlc3QyMDAzMDEpDQp0ZXN0MjAwMzAxJGNlbGxfaWRfM2QgPC0gcGFzdGUodGVzdDIwMDMwMSRjZWxsX2lkLCB0ZXN0MjAwMzAxJGRlcHRobGF5ZXJubywgc2VwPSJfIikgI2NyZWF0ZSBhIG5ldyBjb2x1bW4gdGhhdCBpcyBhIHVuaXF1ZSBjZWxsX2lkICYgZGVwdGggSUQuIA0KaGVhZCh0ZXN0MjAwMzAxKQ0KdGVzdDIwMDMwMSRjZWxsX2lkX3h5enQgPC0gcGFzdGUodGVzdDIwMDMwMSRjZWxsX2lkXzNkLCB0ZXN0MjAwMzAxJHllYXIsIHRlc3QyMDAzMDEkbW9udGgsIHNlcD0iXyIpICNjcmVhdGUgYSBuZXcgY29sdW1uIHRoYXQgaXMgYSB1bmlxdWUgY2VsbF9pZCAmIGRlcHRoIElELiANCmhlYWQodGVzdDIwMDMwMSkNCnVuaXF1ZV9wb2ludHBlcmNlbGwgPC0gdW5pcXVlKHRlc3QyMDAzMDEkdG90YWxfY2VsbF9vYnNfeHl6dCkNCnVuaXF1ZV9wb2ludHBlcmNlbGwNCg0KZm1hdGNoKCJjaGxfc3VyZmFjZSIsIG5hbWVzKHRlc3QyMDAzMDEpKSAjMjgNCmZtYXRjaCgiY2hsX2RlcHRoIiwgbmFtZXModGVzdDIwMDMwMSkpICMyOQ0KZm1hdGNoKCJtbHBfc3VyZmFjZSIsIG5hbWVzKHRlc3QyMDAzMDEpKSAjMzANCmZtYXRjaCgibzJfc3VyZmFjZSIsIG5hbWVzKHRlc3QyMDAzMDEpKSAjMzENCmZtYXRjaCgibzJfZGVwdGgiLCBuYW1lcyh0ZXN0MjAwMzAxKSkgIzMyDQpmbWF0Y2goInNhbGluaXR5X3N1cmZhY2UiLCBuYW1lcyh0ZXN0MjAwMzAxKSkgIzMzDQpmbWF0Y2goInNhbGluaXR5X2RlcHRoIiwgbmFtZXModGVzdDIwMDMwMSkpICMzNA0KZm1hdGNoKCJzc2hfc3VyZmFjZSIsIG5hbWVzKHRlc3QyMDAzMDEpKSAjMzUNCmZtYXRjaCgidGVtcF9zdXJmYWNlIiwgbmFtZXModGVzdDIwMDMwMSkpICMzNg0KZm1hdGNoKCJ0ZW1wX2RlcHRoIiwgbmFtZXModGVzdDIwMDMwMSkpICMzNw0KDQp0ZXN0MjAwMzAxYSA8LSAgdGVzdDIwMDMwMVshY29tcGxldGUuY2FzZXModGVzdDIwMDMwMVsyNDozM10pLCBdICMyODozNyByZXByZXNlbnQgdGhlIGNvbHVtbnMgdy8gZW52LiBkYXRhDQpucm93KHRlc3QyMDAzMDFhKQ0KDQp0ZXN0c2VsIDwtIHNhbXBsZV9uKHRlc3QyMDAzMDEsIDEwMDAwKSAjd2hlcmUgMTAwMDAgPSBudW1iZXIgb2Ygcm93cyB0byBzYW1wbGUgDQpoZWFkKHRlc3RzZWwpDQp0ZXN0c2VsIDwtIHN1YnNldCh0ZXN0c2VsLCBzZWxlY3QgLWModG90YWxfY2VsbF9vYnNfeHl6dCkpDQp3cml0ZS5jc3YodGVzdHNlbCwgIi4uL291dHB1dC9iaW8vYmFjazIwMDMxLmNzdiIsIHJvdy5uYW1lcyA9IEZBTFNFKQ0KaGVhZCh0ZXN0c2VsKQ0KYGBgDQoNCg0KDQoNCm5vdyBjaGVjaw0KYGBge3J9DQpjb2xuYW1lcyhwcmVzZW5jZW1lcmdpbmcpDQpgYGANCg0KYGBge3J9DQpjb2xuYW1lcyhiYWNrZ3JvdW5kbWVyZ2luZykNCmBgYA0KDQpvayBzbyB0aGUgdHdvIGRhdGFmcmFtZWQgbmVlZCBhIHNwb3Qgb2YgY2xlYW5pbmcNCg0KYGBge3IgcmVtb3ZpbmcgY3JhcCBjb2x1bW5zIGZyb20gcHJlc2VuY2UgYW5kIGJhY2tncm91bmR9DQpwcmVzZW5jZW1lcmdpbmcgPC0gc3Vic2V0KHByZXNlbmNlbWVyZ2luZywgc2VsZWN0ID0gLWMobG9uZ2l0dWRlX21ldGVycy4xLCBsYXRpdHVkZV9tZXRlcnMuMSwgbG9uZ2l0dWRlX21ldGVycy4yLCBsYXRpdHVkZV9tZXRlcnMuMiwgWFh0b3RhbF9jZWxsX29ic194eXp0KSkNCmJhY2tncm91bmRtZXJnaW5nIDwtIHN1YnNldChiYWNrZ3JvdW5kbWVyZ2luZywgc2VsZWN0ID0gLWMobG9uZ2l0dWRlX21ldGVycy4xLCBsYXRpdHVkZV9tZXRlcnMuMSwgbG9uZ2l0dWRlX21ldGVycy4yLCBsYXRpdHVkZV9tZXRlcnMuMiwgWCwgb3B0aW9uYWwsIG9wdGlvbmFsLjEpKQ0KYGBgDQoNCmZvciBjb25zaXN0ZW5jeSwgcmVuYW1lIGEgY291cGxlIG9mIHByZXNlbmNlbWVyZ2luZyBjb2x1bW5zDQpgYGB7ciByZW5hbWluZyBwcmVzZW5jZSBjb2x1bW5zfQ0KbmFtZXMocHJlc2VuY2VtZXJnaW5nKVtuYW1lcyhwcmVzZW5jZW1lcmdpbmcpPT0idG90YWxfY2VsbF9vYnMiXSA8LSAidG90YWxfY2VsbF9vYnNfeHkiDQpuYW1lcyhwcmVzZW5jZW1lcmdpbmcpW25hbWVzKHByZXNlbmNlbWVyZ2luZyk9PSJ5eW1tX2NlbGxfb2JzIl0gPC0gInRvdGFsX2NlbGxfb2JzX3h5dCINCmBgYA0KDQpub3cgbWVyZ2UgdGhlIHR3byBkYXRhc2V0cw0KYGBge3IgbWVyZ2UgcHJlcyBhbmQgYmFja2dyb3VuZH0NCnByZXNhYiA8LSByYmluZC5maWxsKHByZXNlbmNlbWVyZ2luZywgYmFja2dyb3VuZG1lcmdpbmcpDQp3cml0ZS5jc3YocHJlc2FiLCAiLi4vb3V0cHV0L2Jpby9wcmVzYWIuY3N2Iiwgcm93Lm5hbWVzID0gRkFMU0UpDQpoZWFkKHByZXNhYikNCmBgYA0KDQpsb3ZlbHkganVibGV5DQoNCg0KIyB3ZWlnaHRlZCAxMGsgZm9yIGVhY2ggbW9udGgNCg0KRm9yIGVhY2ggbW9udGgsIHRoZSAxMCwwMDAgYmFja2dyb3VuZCBwb2ludHMgd2lsbCBiZSBnYXJuZXJlZCBmcm9tIGJhY2tncm91bmQgcG9pbnRzIGNyZWF0ZWQgZm9yIGVhY2ggbW9udGgteWVhciBhbmQgd2VpZ2h0ZWQgdG8gdGhlIG9ic2VydmF0aW9ucy4gRm9yIGV4YW1wbGUsIGZvciBKYW51YXJ5IDIyJSBvZiB0aGUgdW5pcXVlIG9ic2VydmF0aW9ucyBieSBjZWxsIG9jY3VycmVkIGluIDIwMDMsIDQ5JSBpbiAyMDA0LCA3JSBpbiAyMDA1LCBhbmQgMjElIGluIDIwMDYuIFRodXMsIDIyJSBvZiB0aGUgYmFja2dyb3VuZCBwb2ludHMgZm9yIHRoZSBKYW51YXJ5IG1vZGVsIHdpbGwgY29tZSBmcm9tIDIwMDMsIDQ5JSBmcm9tIDIwMDQsIDclIGluIDIwMDUsIGFuZCAyMSUgaW4gMjAwNi4gDQpTZWUg4oCYUGVyY2VudGFnZSBvZiBvY2N1cnJlbmNlcyBieSB1bmlxdWUgY2VsbCAoeHl6dCnigJkgaW4gQXBwZW5kaXggT2JzZXJ2YXRpb25zIHBlciBDZWxsIGluIHJlc3VsdHMgZG9jdW1lbnQgKyBleGNlbCArIGRhdGFfZXhwbG9yYXRpb24uDQoNClNvbWUgb3RoZXIgYW5hbHlzaXMgaGFzIGluZGljYXRlZCB0aGF0IGJhY2tncm91bmQgcG9pbnRzIGhhdmUgYmVlbiBnYXRoZXJlZCBmcm9tIDFCQ0RFRiAob3VzaWRlIENhbmFkYSBFRVogYW5kIGluc2lkZSBHcmVlbmxhbmQgRUVaKS4gSnVzdCBkbyBhIHRhYmxlIGhlcmUNCg0KYGBge3J9DQpuYWZvdW5pcXVlIDwtIHVuaXF1ZShiYWNrZ3JvdW5kJG5hZm9fem9uZSkNCm5hZm91bmlxdWUNCm5hZm8xYiA8LSBzdWJzZXQoYmFja2dyb3VuZCwgbmFmb196b25lID09ICIxQiIpDQpuYWZvMWJjIDwtIHN1YnNldChiYWNrZ3JvdW5kLCBuYWZvX3pvbmUgPT0gIjFDIikNCm5hZm8xZCA8LSBzdWJzZXQoYmFja2dyb3VuZCwgbmFmb196b25lID09ICIxRCIpDQpuYWZvMWJlIDwtIHN1YnNldChiYWNrZ3JvdW5kLCBuYWZvX3pvbmUgPT0gIjFFIikNCm5hZm8xZiA8LSBzdWJzZXQoYmFja2dyb3VuZCwgbmFmb196b25lID09ICIxRiIpDQpuYWZvMSA8LSByYmluZChuYWZvMWIsIG5hZm8xYmMsIG5hZm8xYmUsIG5hZm8xZikNCm5yb3cobmFmbzEpICMxMzkyMzUNCmBgYA0KDQphbmQgdGhlIHNwcmVhZCBvZiB0aGVzZSBmdW5ueSBuYWZvIHBvaW50cyBpbiB5ZWFyIG1vbnRoLi4uDQoNCmBgYHtyIGJhY2tncm91bmQgbmFmbzF4IGJ5IHllYXItbW9udGh9DQpuYWZvMV95eW1tIDwtIHdpdGgobmFmbzEsIHRhYmxlKHllYXIsIG1vbnRoKSkNCndyaXRlLmNzdihuYWZvMV95eW1tLCBmaWxlID0gIi4uL291dHB1dC9iaW8vYmFja2dyb3VuZF9uYWZvMXhfbXRoX3lyLmNzdiIpDQpuYWZvMV95eW1tDQpgYGANCg0Kb2sgc28gbm90aGluZyB0b28gY3JhenkuLi4gbGV0cyByZW1vdmUgdGhlc2UgbmFmbyAxeCBwb2ludHMgZnJvbSB0aGUgZGF0YXNldA0KDQpgYGB7cn0NCmJhY2tubzEgPC0gYmFja2dyb3VuZFshKGJhY2tncm91bmQkbmFmb196b25lID09ICIxQiIpLF0NCmJhY2tubzEgPC0gYmFja25vMVshKGJhY2tubzEkbmFmb196b25lID09ICIxQyIpLF0NCmJhY2tubzEgPC0gYmFja25vMVshKGJhY2tubzEkbmFmb196b25lID09ICIxRCIpLF0NCmJhY2tubzEgPC0gYmFja25vMVshKGJhY2tubzEkbmFmb196b25lID09ICIxRSIpLF0NCmJhY2tubzEgPC0gYmFja25vMVshKGJhY2tubzEkbmFmb196b25lID09ICIxRiIpLF0NCg0KbmFmb3VuaXF1ZSA8LSB1bmlxdWUoYmFja25vMSRuYWZvX3pvbmUpDQpuYWZvdW5pcXVlDQpoZWFkKGJhY2tubzEpDQpgYGANCg0Kb2sgbm93IHJhbmRvbWx5IHNlbGVjdCBiYWNrZ3JvdW5kIHBvaW50cyBmcm9tIGVhY2ggdGltZXNsaWNlIGFzIHBlciB0aGlzIHRhYmxlIChzZWUgcmVzdWx0cyBkb2MgYXBwZW5kaXggb2JzZXJ2YXRpb25zIHBlciBjZWxsICsgZXhjZWwgc3ByZWFkc2hlZXQpDQoNCgkgICAgMQkyCTMJNAk1CTYJNwk4CTkJMTAJMTEJMTINCjE5OTgJMAkwCTAJODQ2CTc5MAk4MzUJNTE4CTAJMzU4CTEzMTUJMTEyMwkxMDcNCjE5OTkJMAkwCTE0MzMJNjAzCTU5NQk5NjgJNjQ4CTAJNjIwCTE2OQk4MzUJNTUxDQoyMDAwCTAJMAkxMjc3CTYwMwk1MzcJNzQ2CTQ5MgkwCTY1Mgk1OTAJMTAyNQk3MjUNCjIwMDEJMAk1MDAwCTc0OAk5OTAJNzUxCTYzNwkzODkJMAkzOTAJNDA1CTQ5NQkxNDMwDQoyMDAyCTAJMAk5OTYJMTA2Mgk3NjEJNjc2CTQ0MAkwCTgxMQk2MjQJNDIwCTk2Ng0KMjAwMwkyMjIyCTAJNzE3CTEwMDQJODg4CTgwOQk0OTIJMAkzMTgJNTkwCTMxMQkxMDE0DQoyMDA0CTQ5MzgJMAkwCTczMgk3OTAJNzk3CTY3NAkxMDA0CTY1Mgk0NzIJNjA0CTExMDENCjIwMDUJNzAwCTQwMDAJODcyCTMxNgk2NDQJNjc2CTEwMTAJMTI3MAk1NTYJNzc2CTg1OAk0MTYNCjIwMDYJMjE0MAkxMDAwCTE1NTgJMzAxCTQ5CTc5MAk2NzQJMTQxMAk1ODgJMTA5Ngk2MTYJNzgzDQoyMDA3CTAJMAk2MjMJNzQ2CTUwOAk1OTMJMTgxMwkxNDA0CTYzNgk2MjQJNTUzCTgyMQ0KMjAwOAkwCTAJOTM0CTUxNgk3NDEJNzk3CTc3NwkxNDE4CTU2NAk0NTUJNzQ4CTU4OQ0KMjAwOQkwCTAJMzEyCTk0NgkxNDA1CTM1MQkyMDcJNTgyCTU4MAk1NTYJOTE1CTQ1NA0KMjAxMAkwCTAJNTMwCTU2MAk2NjMJNzIwCTY0OAk1OTYJNzQ3CTEwOTYJODc1CTU2MA0KMjAxMQkwCTAJMAk3NzUJODc4CTYwNQkyODUJNzU4CTUzMwkxMDYyCTU5Mwk0ODMNCjIwMTIJMAkwCTAJMAkwCTAJMjA4CTc5Mwk2MDQJMAkwCTANCjIwMTMJMAkwCTAJMAkwCTAJNjk5CTY2MAk1MDkJMTE5CTEyCTANCjIwMTQJMAkwCTAJMAkwCTAJMjYJNzcJODE4CTUxCTAJMA0KMjAxNQkwCTAJMAkwCTAJMAkwCTI4CTY0CTAJMTcJMA0KVG90YWwJMTAwMDAJMTAwMDAJMTAwMDAJMTAwMDAJMTAwMDAJMTAwMDAJMTAwMDAJMTAwMDAJMTAwMDAJMTAwMDAJMTAwMDAJMTAwMDANCg0KT2sgc28gZm9yIEphbjoNCjIwMDM6IDIyMjIgWFhYWFggVEhJUyBJUyBNSVNTSU5HISEhIQ0KMjAwNDogNDkzOA0KMjAwNTogNzAwDQoyMDA2OiAyMTQwDQoNCmBgYHtyfQ0KamFuMjAwNCA8LSBzdWJzZXQoYmFja25vMSwgeWVhciA9PSAiMjAwNCIgJiBtb250aCA9PSAiMSIpDQpqYW4yMDA0IDwtIHNhbXBsZV9uKGphbjIwMDQsIDQ5MzgpIA0KamFuMjAwNSA8LSBzdWJzZXQoYmFja25vMSwgeWVhciA9PSAiMjAwNSIgJiBtb250aCA9PSAiMSIpDQpqYW4yMDA1IDwtIHNhbXBsZV9uKGphbjIwMDUsIDcwMCkgDQpqYW4yMDA2IDwtIHN1YnNldChiYWNrbm8xLCB5ZWFyID09ICIyMDA2IiAmIG1vbnRoID09ICIxIikNCmphbjIwMDYgPC0gc2FtcGxlX24oamFuMjAwNiwgMjE0MCkgDQpqYW4gPC0gcmJpbmQoamFuMjAwNCwgamFuMjAwNSwgamFuMjAwNikNCmBgYA0KDQpmb3IgZmViDQoyMDAxOiA1MDAwDQoyMDA1OiA0MDAwDQoyMDA2OiAxMDAwDQoNCmBgYHtyfQ0KZmViMjAwMSA8LSBzdWJzZXQoYmFja25vMSwgeWVhciA9PSAiMjAwMSIgJiBtb250aCA9PSAiMiIpDQpmZWIyMDAxIDwtIHNhbXBsZV9uKGZlYjIwMDEsIDUwMDApIA0KZmViMjAwNSA8LSBzdWJzZXQoYmFja25vMSwgeWVhciA9PSAiMjAwNSIgJiBtb250aCA9PSAiMiIpDQpmZWIyMDA1IDwtIHNhbXBsZV9uKGZlYjIwMDUsIDQwMDApIA0KZmViMjAwNiA8LSBzdWJzZXQoYmFja25vMSwgeWVhciA9PSAiMjAwNiIgJiBtb250aCA9PSAiMiIpDQpmZWIyMDA2IDwtIHNhbXBsZV9uKGZlYjIwMDYsIDEwMDApIA0KZmViIDwtIHJiaW5kKGZlYjIwMDEsIGZlYjIwMDUsIGZlYjIwMDYpDQpgYGANCg0KZm9yIG1hcmNoDQoxOTk5CTE0MzMNCjIwMDAJMTI3Nw0KMjAwMQk3NDgNCjIwMDIJOTk2DQoyMDAzCTcxNw0KMjAwNQk4NzINCjIwMDYJMTU1OA0KMjAwNwk2MjMNCjIwMDgJOTM0DQoyMDA5CTMxMg0KMjAxMAk1MzANCg0KYGBge3J9DQptYXIxOTk5IDwtIHN1YnNldChiYWNrbm8xLCB5ZWFyID09ICIxOTk5IiAmIG1vbnRoID09ICIzIikNCm1hcjE5OTkgPC0gc2FtcGxlX24obWFyMTk5OSwgMTQzMykgDQptYXIyMDAwIDwtIHN1YnNldChiYWNrbm8xLCB5ZWFyID09ICIyMDAwIiAmIG1vbnRoID09ICIzIikNCm1hcjIwMDAgPC0gc2FtcGxlX24obWFyMjAwMCwgMTI3NykgDQptYXIyMDAxIDwtIHN1YnNldChiYWNrbm8xLCB5ZWFyID09ICIyMDAxIiAmIG1vbnRoID09ICIzIikNCm1hcjIwMDEgPC0gc2FtcGxlX24obWFyMjAwMSwgNzQ4KQ0KbWFyMjAwMiA8LSBzdWJzZXQoYmFja25vMSwgeWVhciA9PSAiMjAwMiIgJiBtb250aCA9PSAiMyIpDQptYXIyMDAyIDwtIHNhbXBsZV9uKG1hcjIwMDIsIDk5NikNCm1hcjIwMDMgPC0gc3Vic2V0KGJhY2tubzEsIHllYXIgPT0gIjIwMDMiICYgbW9udGggPT0gIjMiKQ0KbWFyMjAwMyA8LSBzYW1wbGVfbihtYXIyMDAzLCA3MTcpDQptYXIyMDA1IDwtIHN1YnNldChiYWNrbm8xLCB5ZWFyID09ICIyMDA1IiAmIG1vbnRoID09ICIzIikNCm1hcjIwMDUgPC0gc2FtcGxlX24obWFyMjAwNSwgODcyKQ0KbWFyMjAwNiA8LSBzdWJzZXQoYmFja25vMSwgeWVhciA9PSAiMjAwNiIgJiBtb250aCA9PSAiMyIpDQptYXIyMDA2IDwtIHNhbXBsZV9uKG1hcjIwMDYsIDE1NTgpDQptYXIyMDA3IDwtIHN1YnNldChiYWNrbm8xLCB5ZWFyID09ICIyMDA3IiAmIG1vbnRoID09ICIzIikNCm1hcjIwMDcgPC0gc2FtcGxlX24obWFyMjAwNywgNjIzKQ0KbWFyMjAwOCA8LSBzdWJzZXQoYmFja25vMSwgeWVhciA9PSAiMjAwOCIgJiBtb250aCA9PSAiMyIpDQptYXIyMDA4IDwtIHNhbXBsZV9uKG1hcjIwMDgsIDkzNCkNCm1hcjIwMDkgPC0gc3Vic2V0KGJhY2tubzEsIHllYXIgPT0gIjIwMDkiICYgbW9udGggPT0gIjMiKQ0KbWFyMjAwOSA8LSBzYW1wbGVfbihtYXIyMDA5LCAzMTIpDQptYXIyMDEwIDwtIHN1YnNldChiYWNrbm8xLCB5ZWFyID09ICIyMDEwIiAmIG1vbnRoID09ICIzIikNCm1hcjIwMTAgPC0gc2FtcGxlX24obWFyMjAxMCwgNTMwKQ0KbWFyIDwtIHJiaW5kKG1hcjE5OTksIG1hcjIwMDAsIG1hcjIwMDEsIG1hcjIwMDIsIG1hcjIwMDMsIG1hcjIwMDUsIG1hcjIwMDYsIG1hcjIwMDcsIG1hcjIwMDgsIG1hcjIwMDksIG1hcjIwMTApDQpgYGANCg0KRm9yIGFwcmlsDQoxOTk4CTg0Ng0KMTk5OQk2MDMNCjIwMDAJNjAzDQoyMDAxCTk5MA0KMjAwMgkxMDYyDQoyMDAzCTEwMDQNCjIwMDQJNzMyDQoyMDA1CTMxNg0KMjAwNgkzMDENCjIwMDcJNzQ2DQoyMDA4CTUxNg0KMjAwOQk5NDYNCjIwMTAJNTYwDQoyMDExCTc3NQ0KDQpgYGB7cn0NCmFwcjE5OTggPC0gc3Vic2V0KGJhY2tubzEsIHllYXIgPT0gIjE5OTgiICYgbW9udGggPT0gIjQiKQ0KYXByMTk5OCA8LSBzYW1wbGVfbihhcHIxOTk4LCA4NDYpIA0KYXByMTk5OSA8LSBzdWJzZXQoYmFja25vMSwgeWVhciA9PSAiMTk5OSIgJiBtb250aCA9PSAiNCIpDQphcHIxOTk5IDwtIHNhbXBsZV9uKGFwcjE5OTksIDYwMykgDQphcHIyMDAwIDwtIHN1YnNldChiYWNrbm8xLCB5ZWFyID09ICIyMDAwIiAmIG1vbnRoID09ICI0IikNCmFwcjIwMDAgPC0gc2FtcGxlX24oYXByMjAwMCwgNjAzKSANCmFwcjIwMDEgPC0gc3Vic2V0KGJhY2tubzEsIHllYXIgPT0gIjIwMDEiICYgbW9udGggPT0gIjQiKQ0KYXByMjAwMSA8LSBzYW1wbGVfbihhcHIyMDAxLCA5OTApDQphcHIyMDAyIDwtIHN1YnNldChiYWNrbm8xLCB5ZWFyID09ICIyMDAyIiAmIG1vbnRoID09ICI0IikNCmFwcjIwMDIgPC0gc2FtcGxlX24oYXByMjAwMiwgMTA2MikNCmFwcjIwMDMgPC0gc3Vic2V0KGJhY2tubzEsIHllYXIgPT0gIjIwMDMiICYgbW9udGggPT0gIjQiKQ0KYXByMjAwMyA8LSBzYW1wbGVfbihhcHIyMDAzLCAxMDA0KQ0KYXByMjAwNCA8LSBzdWJzZXQoYmFja25vMSwgeWVhciA9PSAiMjAwNCIgJiBtb250aCA9PSAiNCIpDQphcHIyMDA0IDwtIHNhbXBsZV9uKGFwcjIwMDQsIDczMikNCmFwcjIwMDUgPC0gc3Vic2V0KGJhY2tubzEsIHllYXIgPT0gIjIwMDUiICYgbW9udGggPT0gIjQiKQ0KYXByMjAwNSA8LSBzYW1wbGVfbihhcHIyMDA1LCAzMTYpDQphcHIyMDA2IDwtIHN1YnNldChiYWNrbm8xLCB5ZWFyID09ICIyMDA2IiAmIG1vbnRoID09ICI0IikNCmFwcjIwMDYgPC0gc2FtcGxlX24oYXByMjAwNiwgMzAxKQ0KYXByMjAwNyA8LSBzdWJzZXQoYmFja25vMSwgeWVhciA9PSAiMjAwNyIgJiBtb250aCA9PSAiNCIpDQphcHIyMDA3IDwtIHNhbXBsZV9uKGFwcjIwMDcsIDc0NikNCmFwcjIwMDggPC0gc3Vic2V0KGJhY2tubzEsIHllYXIgPT0gIjIwMDgiICYgbW9udGggPT0gIjQiKQ0KYXByMjAwOCA8LSBzYW1wbGVfbihhcHIyMDA4LCA1MTYpDQphcHIyMDA5IDwtIHN1YnNldChiYWNrbm8xLCB5ZWFyID09ICIyMDA5IiAmIG1vbnRoID09ICI0IikNCmFwcjIwMDkgPC0gc2FtcGxlX24oYXByMjAwOSwgOTQ2KQ0KYXByMjAxMCA8LSBzdWJzZXQoYmFja25vMSwgeWVhciA9PSAiMjAxMCIgJiBtb250aCA9PSAiNCIpDQphcHIyMDEwIDwtIHNhbXBsZV9uKGFwcjIwMTAsIDU2MCkNCmFwcjIwMTEgPC0gc3Vic2V0KGJhY2tubzEsIHllYXIgPT0gIjIwMTEiICYgbW9udGggPT0gIjQiKQ0KYXByMjAxMSA8LSBzYW1wbGVfbihhcHIyMDExLCA3NzUpDQphcHIgPC0gcmJpbmQoYXByMTk5OCwgYXByMTk5OSwgYXByMjAwMCwgYXByMjAwMSwgYXByMjAwMiwgYXByMjAwMywgYXByMjAwNCwgYXByMjAwNSwgYXByMjAwNiwgYXByMjAwNywgYXByMjAwOCwgYXByMjAwOSwgYXByMjAxMCwgYXByMjAxMSkNCmBgYA0KDQoNCkZvciBNYXkNCjE5OTgJNzkwDQoxOTk5CTU5NQ0KMjAwMAk1MzcNCjIwMDEJNzUxDQoyMDAyCTc2MQ0KMjAwMwk4ODgNCjIwMDQJNzkwDQoyMDA1CTY0NA0KMjAwNgk0OQ0KMjAwNwk1MDgNCjIwMDgJNzQxDQoyMDA5CTE0MDUNCjIwMTAJNjYzDQoyMDExCTg3OA0KDQpgYGB7cn0NCm1heTE5OTggPC0gc3Vic2V0KGJhY2tubzEsIHllYXIgPT0gIjE5OTgiICYgbW9udGggPT0gIjUiKQ0KbWF5MTk5OCA8LSBzYW1wbGVfbihtYXkxOTk4LCA3OTApIA0KbWF5MTk5OSA8LSBzdWJzZXQoYmFja25vMSwgeWVhciA9PSAiMTk5OSIgJiBtb250aCA9PSAiNSIpDQptYXkxOTk5IDwtIHNhbXBsZV9uKG1heTE5OTksIDU5NSkgDQptYXkyMDAwIDwtIHN1YnNldChiYWNrbm8xLCB5ZWFyID09ICIyMDAwIiAmIG1vbnRoID09ICI1IikNCm1heTIwMDAgPC0gc2FtcGxlX24obWF5MjAwMCwgNTM3KSANCm1heTIwMDEgPC0gc3Vic2V0KGJhY2tubzEsIHllYXIgPT0gIjIwMDEiICYgbW9udGggPT0gIjUiKQ0KbWF5MjAwMSA8LSBzYW1wbGVfbihtYXkyMDAxLCA3NTEpDQptYXkyMDAyIDwtIHN1YnNldChiYWNrbm8xLCB5ZWFyID09ICIyMDAyIiAmIG1vbnRoID09ICI1IikNCm1heTIwMDIgPC0gc2FtcGxlX24obWF5MjAwMiwgNzYxKQ0KbWF5MjAwMyA8LSBzdWJzZXQoYmFja25vMSwgeWVhciA9PSAiMjAwMyIgJiBtb250aCA9PSAiNSIpDQptYXkyMDAzIDwtIHNhbXBsZV9uKG1heTIwMDMsIDg4OCkNCm1heTIwMDQgPC0gc3Vic2V0KGJhY2tubzEsIHllYXIgPT0gIjIwMDQiICYgbW9udGggPT0gIjUiKQ0KbWF5MjAwNCA8LSBzYW1wbGVfbihtYXkyMDA0LCA3OTApDQptYXkyMDA1IDwtIHN1YnNldChiYWNrbm8xLCB5ZWFyID09ICIyMDA1IiAmIG1vbnRoID09ICI1IikNCm1heTIwMDUgPC0gc2FtcGxlX24obWF5MjAwNSwgNjQ0KQ0KbWF5MjAwNiA8LSBzdWJzZXQoYmFja25vMSwgeWVhciA9PSAiMjAwNiIgJiBtb250aCA9PSAiNSIpDQptYXkyMDA2IDwtIHNhbXBsZV9uKG1heTIwMDYsIDQ5KQ0KbWF5MjAwNyA8LSBzdWJzZXQoYmFja25vMSwgeWVhciA9PSAiMjAwNyIgJiBtb250aCA9PSAiNSIpDQptYXkyMDA3IDwtIHNhbXBsZV9uKG1heTIwMDcsIDUwOCkNCm1heTIwMDggPC0gc3Vic2V0KGJhY2tubzEsIHllYXIgPT0gIjIwMDgiICYgbW9udGggPT0gIjUiKQ0KbWF5MjAwOCA8LSBzYW1wbGVfbihtYXkyMDA4LCA3NDEpDQptYXkyMDA5IDwtIHN1YnNldChiYWNrbm8xLCB5ZWFyID09ICIyMDA5IiAmIG1vbnRoID09ICI1IikNCm1heTIwMDkgPC0gc2FtcGxlX24obWF5MjAwOSwgMTQwNSkNCm1heTIwMTAgPC0gc3Vic2V0KGJhY2tubzEsIHllYXIgPT0gIjIwMTAiICYgbW9udGggPT0gIjUiKQ0KbWF5MjAxMCA8LSBzYW1wbGVfbihtYXkyMDEwLCA2NjMpDQptYXkyMDExIDwtIHN1YnNldChiYWNrbm8xLCB5ZWFyID09ICIyMDExIiAmIG1vbnRoID09ICI1IikNCm1heTIwMTEgPC0gc2FtcGxlX24obWF5MjAxMSwgODc4KQ0KbWF5IDwtIHJiaW5kKG1heTE5OTgsIG1heTE5OTksIG1heTIwMDAsIG1heTIwMDEsIG1heTIwMDIsIG1heTIwMDMsIG1heTIwMDQsIG1heTIwMDUsIG1heTIwMDYsIG1heTIwMDcsIG1heTIwMDgsIG1heTIwMDksIG1heTIwMTAsIG1heTIwMTEpDQpgYGANCg0KZm9yIEp1bmUNCg0KMTk5OAk4MzUNCjE5OTkJOTY4DQoyMDAwCTc0Ng0KMjAwMQk2MzcNCjIwMDIJNjc2DQoyMDAzCTgwOQ0KMjAwNAk3OTcNCjIwMDUJNjc2DQoyMDA2CTc5MA0KMjAwNwk1OTMNCjIwMDgJNzk3DQoyMDA5CTM1MQ0KMjAxMAk3MjANCjIwMTEJNjA1DQoNCmBgYHtyfQ0KanVuMTk5OCA8LSBzdWJzZXQoYmFja25vMSwgeWVhciA9PSAiMTk5OCIgJiBtb250aCA9PSAiNiIpDQpqdW4xOTk4IDwtIHNhbXBsZV9uKGp1bjE5OTgsIDgzNSkgDQpqdW4xOTk5IDwtIHN1YnNldChiYWNrbm8xLCB5ZWFyID09ICIxOTk5IiAmIG1vbnRoID09ICI2IikNCmp1bjE5OTkgPC0gc2FtcGxlX24oanVuMTk5OSwgOTY4KSANCmp1bjIwMDAgPC0gc3Vic2V0KGJhY2tubzEsIHllYXIgPT0gIjIwMDAiICYgbW9udGggPT0gIjYiKQ0KanVuMjAwMCA8LSBzYW1wbGVfbihqdW4yMDAwLCA3NDYpIA0KanVuMjAwMSA8LSBzdWJzZXQoYmFja25vMSwgeWVhciA9PSAiMjAwMSIgJiBtb250aCA9PSAiNiIpDQpqdW4yMDAxIDwtIHNhbXBsZV9uKGp1bjIwMDEsIDYzNykNCmp1bjIwMDIgPC0gc3Vic2V0KGJhY2tubzEsIHllYXIgPT0gIjIwMDIiICYgbW9udGggPT0gIjYiKQ0KanVuMjAwMiA8LSBzYW1wbGVfbihqdW4yMDAyLCA2NzYpDQpqdW4yMDAzIDwtIHN1YnNldChiYWNrbm8xLCB5ZWFyID09ICIyMDAzIiAmIG1vbnRoID09ICI2IikNCmp1bjIwMDMgPC0gc2FtcGxlX24oanVuMjAwMywgODA5KQ0KanVuMjAwNCA8LSBzdWJzZXQoYmFja25vMSwgeWVhciA9PSAiMjAwNCIgJiBtb250aCA9PSAiNiIpDQpqdW4yMDA0IDwtIHNhbXBsZV9uKGp1bjIwMDQsIDc5NykNCmp1bjIwMDUgPC0gc3Vic2V0KGJhY2tubzEsIHllYXIgPT0gIjIwMDUiICYgbW9udGggPT0gIjYiKQ0KanVuMjAwNSA8LSBzYW1wbGVfbihqdW4yMDA1LCA2NzYpDQpqdW4yMDA2IDwtIHN1YnNldChiYWNrbm8xLCB5ZWFyID09ICIyMDA2IiAmIG1vbnRoID09ICI2IikNCmp1bjIwMDYgPC0gc2FtcGxlX24oanVuMjAwNiwgNzkwKQ0KanVuMjAwNyA8LSBzdWJzZXQoYmFja25vMSwgeWVhciA9PSAiMjAwNyIgJiBtb250aCA9PSAiNiIpDQpqdW4yMDA3IDwtIHNhbXBsZV9uKGp1bjIwMDcsIDU5MykNCmp1bjIwMDggPC0gc3Vic2V0KGJhY2tubzEsIHllYXIgPT0gIjIwMDgiICYgbW9udGggPT0gIjYiKQ0KanVuMjAwOCA8LSBzYW1wbGVfbihqdW4yMDA4LCA3OTcpDQpqdW4yMDA5IDwtIHN1YnNldChiYWNrbm8xLCB5ZWFyID09ICIyMDA5IiAmIG1vbnRoID09ICI2IikNCmp1bjIwMDkgPC0gc2FtcGxlX24oanVuMjAwOSwgMzUxKQ0KanVuMjAxMCA8LSBzdWJzZXQoYmFja25vMSwgeWVhciA9PSAiMjAxMCIgJiBtb250aCA9PSAiNiIpDQpqdW4yMDEwIDwtIHNhbXBsZV9uKGp1bjIwMTAsIDcyMCkNCmp1bjIwMTEgPC0gc3Vic2V0KGJhY2tubzEsIHllYXIgPT0gIjIwMTEiICYgbW9udGggPT0gIjYiKQ0KanVuMjAxMSA8LSBzYW1wbGVfbihqdW4yMDExLCA2MDUpDQpqdW4gPC0gcmJpbmQoanVuMTk5OCwganVuMTk5OSwganVuMjAwMCwganVuMjAwMSwganVuMjAwMiwganVuMjAwMywganVuMjAwNCwganVuMjAwNSwganVuMjAwNiwganVuMjAwNywganVuMjAwOCwganVuMjAwOSwganVuMjAxMCwganVuMjAxMSkNCmBgYA0KDQpKdWx5DQoNCjE5OTgJNTE4DQoxOTk5CTY0OA0KMjAwMAk0OTINCjIwMDEJMzg5DQoyMDAyCTQ0MA0KMjAwMwk0OTINCjIwMDQJNjc0DQoyMDA1CTEwMTANCjIwMDYJNjc0DQoyMDA3CTE4MTMNCjIwMDgJNzc3DQoyMDA5CTIwNw0KMjAxMAk2NDgNCjIwMTEJMjg1DQoyMDEyCTIwOA0KMjAxMwk2OTkNCjIwMTQJMjYNCg0KYGBge3J9DQpqdWwxOTk4IDwtIHN1YnNldChiYWNrbm8xLCB5ZWFyID09ICIxOTk4IiAmIG1vbnRoID09ICI3IikNCmp1bDE5OTggPC0gc2FtcGxlX24oanVsMTk5OCwgNTE4KSANCmp1bDE5OTkgPC0gc3Vic2V0KGJhY2tubzEsIHllYXIgPT0gIjE5OTkiICYgbW9udGggPT0gIjciKQ0KanVsMTk5OSA8LSBzYW1wbGVfbihqdWwxOTk5LCA2NDgpIA0KanVsMjAwMCA8LSBzdWJzZXQoYmFja25vMSwgeWVhciA9PSAiMjAwMCIgJiBtb250aCA9PSAiNyIpDQpqdWwyMDAwIDwtIHNhbXBsZV9uKGp1bDIwMDAsIDQ5MikgDQpqdWwyMDAxIDwtIHN1YnNldChiYWNrbm8xLCB5ZWFyID09ICIyMDAxIiAmIG1vbnRoID09ICI3IikNCmp1bDIwMDEgPC0gc2FtcGxlX24oanVsMjAwMSwgMzg5KQ0KanVsMjAwMiA8LSBzdWJzZXQoYmFja25vMSwgeWVhciA9PSAiMjAwMiIgJiBtb250aCA9PSAiNyIpDQpqdWwyMDAyIDwtIHNhbXBsZV9uKGp1bDIwMDIsIDQ0MCkNCmp1bDIwMDMgPC0gc3Vic2V0KGJhY2tubzEsIHllYXIgPT0gIjIwMDMiICYgbW9udGggPT0gIjciKQ0KanVsMjAwMyA8LSBzYW1wbGVfbihqdWwyMDAzLCA0OTIpDQpqdWwyMDA0IDwtIHN1YnNldChiYWNrbm8xLCB5ZWFyID09ICIyMDA0IiAmIG1vbnRoID09ICI3IikNCmp1bDIwMDQgPC0gc2FtcGxlX24oanVsMjAwNCwgNjc0KQ0KanVsMjAwNSA8LSBzdWJzZXQoYmFja25vMSwgeWVhciA9PSAiMjAwNSIgJiBtb250aCA9PSAiNyIpDQpqdWwyMDA1IDwtIHNhbXBsZV9uKGp1bDIwMDUsIDEwMTApDQpqdWwyMDA2IDwtIHN1YnNldChiYWNrbm8xLCB5ZWFyID09ICIyMDA2IiAmIG1vbnRoID09ICI3IikNCmp1bDIwMDYgPC0gc2FtcGxlX24oanVsMjAwNiwgNjc0KQ0KanVsMjAwNyA8LSBzdWJzZXQoYmFja25vMSwgeWVhciA9PSAiMjAwNyIgJiBtb250aCA9PSAiNyIpDQpqdWwyMDA3IDwtIHNhbXBsZV9uKGp1bDIwMDcsIDE4MTMpDQpqdWwyMDA4IDwtIHN1YnNldChiYWNrbm8xLCB5ZWFyID09ICIyMDA4IiAmIG1vbnRoID09ICI3IikNCmp1bDIwMDggPC0gc2FtcGxlX24oanVsMjAwOCwgNzc3KQ0KanVsMjAwOSA8LSBzdWJzZXQoYmFja25vMSwgeWVhciA9PSAiMjAwOSIgJiBtb250aCA9PSAiNyIpDQpqdWwyMDA5IDwtIHNhbXBsZV9uKGp1bDIwMDksIDIwNykNCmp1bDIwMTAgPC0gc3Vic2V0KGJhY2tubzEsIHllYXIgPT0gIjIwMTAiICYgbW9udGggPT0gIjciKQ0KanVsMjAxMCA8LSBzYW1wbGVfbihqdWwyMDEwLCA2NDgpDQpqdWwyMDExIDwtIHN1YnNldChiYWNrbm8xLCB5ZWFyID09ICIyMDExIiAmIG1vbnRoID09ICI3IikNCmp1bDIwMTEgPC0gc2FtcGxlX24oanVsMjAxMSwgMjg1KQ0KanVsMjAxMiA8LSBzdWJzZXQoYmFja25vMSwgeWVhciA9PSAiMjAxMiIgJiBtb250aCA9PSAiNyIpDQpqdWwyMDEyIDwtIHNhbXBsZV9uKGp1bDIwMTIsIDIwOCkNCmp1bDIwMTMgPC0gc3Vic2V0KGJhY2tubzEsIHllYXIgPT0gIjIwMTMiICYgbW9udGggPT0gIjciKQ0KanVsMjAxMyA8LSBzYW1wbGVfbihqdWwyMDEzLCA2OTkpDQpqdWwyMDE0IDwtIHN1YnNldChiYWNrbm8xLCB5ZWFyID09ICIyMDE0IiAmIG1vbnRoID09ICI3IikNCmp1bDIwMTQgPC0gc2FtcGxlX24oanVsMjAxNCwgMjYpDQpqdWwgPC0gcmJpbmQoanVsMTk5OCwganVsMTk5OSwganVsMjAwMCwganVsMjAwMSwganVsMjAwMiwganVsMjAwMywganVsMjAwNCwganVsMjAwNSwganVsMjAwNiwganVsMjAwNywganVsMjAwOCwganVsMjAwOSwganVsMjAxMCwganVsMjAxMSwganVsMjAxMiwganVsMjAxMywganVsMjAxNCkNCmBgYA0KDQpGb3IgQXVnDQoyMDA0CTEwMDQNCjIwMDUJMTI3MA0KMjAwNgkxNDEwDQoyMDA3CTE0MDQNCjIwMDgJMTQxOA0KMjAwOQk1ODINCjIwMTAJNTk2DQoyMDExCTc1OA0KMjAxMgk3OTMNCjIwMTMJNjYwDQoyMDE0CTc3DQoyMDE1CTI4DQoNCg0KYGBge3J9DQphdWcyMDA0IDwtIHN1YnNldChiYWNrbm8xLCB5ZWFyID09ICIyMDA0IiAmIG1vbnRoID09ICI4IikNCmF1ZzIwMDQgPC0gc2FtcGxlX24oYXVnMjAwNCwgMTAwNCkNCmF1ZzIwMDUgPC0gc3Vic2V0KGJhY2tubzEsIHllYXIgPT0gIjIwMDUiICYgbW9udGggPT0gIjgiKQ0KYXVnMjAwNSA8LSBzYW1wbGVfbihhdWcyMDA1LCAxMjcwKQ0KYXVnMjAwNiA8LSBzdWJzZXQoYmFja25vMSwgeWVhciA9PSAiMjAwNiIgJiBtb250aCA9PSAiOCIpDQphdWcyMDA2IDwtIHNhbXBsZV9uKGF1ZzIwMDYsIDE0MTApDQphdWcyMDA3IDwtIHN1YnNldChiYWNrbm8xLCB5ZWFyID09ICIyMDA3IiAmIG1vbnRoID09ICI4IikNCmF1ZzIwMDcgPC0gc2FtcGxlX24oYXVnMjAwNywgMTQwNCkNCmF1ZzIwMDggPC0gc3Vic2V0KGJhY2tubzEsIHllYXIgPT0gIjIwMDgiICYgbW9udGggPT0gIjgiKQ0KYXVnMjAwOCA8LSBzYW1wbGVfbihhdWcyMDA4LCAxNDE4KQ0KYXVnMjAwOSA8LSBzdWJzZXQoYmFja25vMSwgeWVhciA9PSAiMjAwOSIgJiBtb250aCA9PSAiOCIpDQphdWcyMDA5IDwtIHNhbXBsZV9uKGF1ZzIwMDksIDU4MikNCmF1ZzIwMTAgPC0gc3Vic2V0KGJhY2tubzEsIHllYXIgPT0gIjIwMTAiICYgbW9udGggPT0gIjgiKQ0KYXVnMjAxMCA8LSBzYW1wbGVfbihhdWcyMDEwLCA1OTYpDQphdWcyMDExIDwtIHN1YnNldChiYWNrbm8xLCB5ZWFyID09ICIyMDExIiAmIG1vbnRoID09ICI4IikNCmF1ZzIwMTEgPC0gc2FtcGxlX24oYXVnMjAxMSwgNzU4KQ0KYXVnMjAxMiA8LSBzdWJzZXQoYmFja25vMSwgeWVhciA9PSAiMjAxMiIgJiBtb250aCA9PSAiOCIpDQphdWcyMDEyIDwtIHNhbXBsZV9uKGF1ZzIwMTIsIDc5MykNCmF1ZzIwMTMgPC0gc3Vic2V0KGJhY2tubzEsIHllYXIgPT0gIjIwMTMiICYgbW9udGggPT0gIjgiKQ0KYXVnMjAxMyA8LSBzYW1wbGVfbihhdWcyMDEzLCA2NjApDQphdWcyMDE0IDwtIHN1YnNldChiYWNrbm8xLCB5ZWFyID09ICIyMDE0IiAmIG1vbnRoID09ICI4IikNCmF1ZzIwMTQgPC0gc2FtcGxlX24oYXVnMjAxNCwgNzcpDQphdWcyMDE1IDwtIHN1YnNldChiYWNrbm8xLCB5ZWFyID09ICIyMDE1IiAmIG1vbnRoID09ICI4IikNCmF1ZzIwMTUgPC0gc2FtcGxlX24oYXVnMjAxNSwgMjgpDQphdWcgPC0gcmJpbmQoYXVnMjAwNCwgYXVnMjAwNSwgYXVnMjAwNiwgYXVnMjAwNywgYXVnMjAwOCwgYXVnMjAwOSwgYXVnMjAxMCwgYXVnMjAxMSwgYXVnMjAxMiwgYXVnMjAxMywgYXVnMjAxNCwgYXVnMjAxNSkNCmBgYA0KDQpGb3Igc2VwDQoxOTk4CTM1OA0KMTk5OQk2MjANCjIwMDAJNjUyDQoyMDAxCTM5MA0KMjAwMgk4MTENCjIwMDMJMzE4DQoyMDA0CTY1Mg0KMjAwNQk1NTYNCjIwMDYJNTg4DQoyMDA3CTYzNg0KMjAwOAk1NjQNCjIwMDkJNTgwDQoyMDEwCTc0Nw0KMjAxMQk1MzMNCjIwMTIJNjA0DQoyMDEzCTUwOQ0KMjAxNAk4MTgNCjIwMTUJNjQNCg0KYGBge3J9DQpzZXAxOTk4IDwtIHN1YnNldChiYWNrbm8xLCB5ZWFyID09ICIxOTk4IiAmIG1vbnRoID09ICI5IikNCnNlcDE5OTggPC0gc2FtcGxlX24oc2VwMTk5OCwgMzU4KSANCnNlcDE5OTkgPC0gc3Vic2V0KGJhY2tubzEsIHllYXIgPT0gIjE5OTkiICYgbW9udGggPT0gIjkiKQ0Kc2VwMTk5OSA8LSBzYW1wbGVfbihzZXAxOTk5LCA2MjApIA0Kc2VwMjAwMCA8LSBzdWJzZXQoYmFja25vMSwgeWVhciA9PSAiMjAwMCIgJiBtb250aCA9PSAiOSIpDQpzZXAyMDAwIDwtIHNhbXBsZV9uKHNlcDIwMDAsIDY1MikgDQpzZXAyMDAxIDwtIHN1YnNldChiYWNrbm8xLCB5ZWFyID09ICIyMDAxIiAmIG1vbnRoID09ICI5IikNCnNlcDIwMDEgPC0gc2FtcGxlX24oc2VwMjAwMSwgMzkwKQ0Kc2VwMjAwMiA8LSBzdWJzZXQoYmFja25vMSwgeWVhciA9PSAiMjAwMiIgJiBtb250aCA9PSAiOSIpDQpzZXAyMDAyIDwtIHNhbXBsZV9uKHNlcDIwMDIsIDgxMSkNCnNlcDIwMDMgPC0gc3Vic2V0KGJhY2tubzEsIHllYXIgPT0gIjIwMDMiICYgbW9udGggPT0gIjkiKQ0Kc2VwMjAwMyA8LSBzYW1wbGVfbihzZXAyMDAzLCAzMTgpDQpzZXAyMDA0IDwtIHN1YnNldChiYWNrbm8xLCB5ZWFyID09ICIyMDA0IiAmIG1vbnRoID09ICI5IikNCnNlcDIwMDQgPC0gc2FtcGxlX24oc2VwMjAwNCwgNjUyKQ0Kc2VwMjAwNSA8LSBzdWJzZXQoYmFja25vMSwgeWVhciA9PSAiMjAwNSIgJiBtb250aCA9PSAiOSIpDQpzZXAyMDA1IDwtIHNhbXBsZV9uKHNlcDIwMDUsIDU1NikNCnNlcDIwMDYgPC0gc3Vic2V0KGJhY2tubzEsIHllYXIgPT0gIjIwMDYiICYgbW9udGggPT0gIjkiKQ0Kc2VwMjAwNiA8LSBzYW1wbGVfbihzZXAyMDA2LCA1ODgpDQpzZXAyMDA3IDwtIHN1YnNldChiYWNrbm8xLCB5ZWFyID09ICIyMDA3IiAmIG1vbnRoID09ICI5IikNCnNlcDIwMDcgPC0gc2FtcGxlX24oc2VwMjAwNywgNjM2KQ0Kc2VwMjAwOCA8LSBzdWJzZXQoYmFja25vMSwgeWVhciA9PSAiMjAwOCIgJiBtb250aCA9PSAiOSIpDQpzZXAyMDA4IDwtIHNhbXBsZV9uKHNlcDIwMDgsIDU2NCkNCnNlcDIwMDkgPC0gc3Vic2V0KGJhY2tubzEsIHllYXIgPT0gIjIwMDkiICYgbW9udGggPT0gIjkiKQ0Kc2VwMjAwOSA8LSBzYW1wbGVfbihzZXAyMDA5LCA1ODApDQpzZXAyMDEwIDwtIHN1YnNldChiYWNrbm8xLCB5ZWFyID09ICIyMDEwIiAmIG1vbnRoID09ICI5IikNCnNlcDIwMTAgPC0gc2FtcGxlX24oc2VwMjAxMCwgNzQ3KQ0Kc2VwMjAxMSA8LSBzdWJzZXQoYmFja25vMSwgeWVhciA9PSAiMjAxMSIgJiBtb250aCA9PSAiOSIpDQpzZXAyMDExIDwtIHNhbXBsZV9uKHNlcDIwMTEsIDUzMykNCnNlcDIwMTIgPC0gc3Vic2V0KGJhY2tubzEsIHllYXIgPT0gIjIwMTIiICYgbW9udGggPT0gIjkiKQ0Kc2VwMjAxMiA8LSBzYW1wbGVfbihzZXAyMDEyLCA2MDQpDQpzZXAyMDEzIDwtIHN1YnNldChiYWNrbm8xLCB5ZWFyID09ICIyMDEzIiAmIG1vbnRoID09ICI5IikNCnNlcDIwMTMgPC0gc2FtcGxlX24oc2VwMjAxMywgNTA5KQ0Kc2VwMjAxNCA8LSBzdWJzZXQoYmFja25vMSwgeWVhciA9PSAiMjAxNCIgJiBtb250aCA9PSAiOSIpDQpzZXAyMDE0IDwtIHNhbXBsZV9uKHNlcDIwMTQsIDgxOCkNCnNlcDIwMTUgPC0gc3Vic2V0KGJhY2tubzEsIHllYXIgPT0gIjIwMTUiICYgbW9udGggPT0gIjkiKQ0Kc2VwMjAxNSA8LSBzYW1wbGVfbihzZXAyMDE1LCA2NCkNCnNlcCA8LSByYmluZChzZXAxOTk4LCBzZXAxOTk5LCBzZXAyMDAwLCBzZXAyMDAxLCBzZXAyMDAyLCBzZXAyMDAzLCBzZXAyMDA0LCBzZXAyMDA1LCBzZXAyMDA2LCBzZXAyMDA3LCBzZXAyMDA4LCBzZXAyMDA5LCBzZXAyMDEwLCBzZXAyMDExLCBzZXAyMDEyLCBzZXAyMDEzLCBzZXAyMDE0LCBzZXAyMDE1KQ0KYGBgDQoNCg0KRm9yIG9jdA0KMTk5OAkxMzE1DQoxOTk5CTE2OQ0KMjAwMAk1OTANCjIwMDEJNDA1DQoyMDAyCTYyNA0KMjAwMwk1OTANCjIwMDQJNDcyDQoyMDA1CTc3Ng0KMjAwNgkxMDk2DQoyMDA3CTYyNA0KMjAwOAk0NTUNCjIwMDkJNTU2DQoyMDEwCTEwOTYNCjIwMTEJMTA2Mg0KMjAxMwkxMTkNCjIwMTQJNTENCg0KDQpgYGB7cn0NCm9jdDE5OTggPC0gc3Vic2V0KGJhY2tubzEsIHllYXIgPT0gIjE5OTgiICYgbW9udGggPT0gIjEwIikNCm9jdDE5OTggPC0gc2FtcGxlX24ob2N0MTk5OCwgMTMxNSkgDQpvY3QxOTk5IDwtIHN1YnNldChiYWNrbm8xLCB5ZWFyID09ICIxOTk5IiAmIG1vbnRoID09ICIxMCIpDQpvY3QxOTk5IDwtIHNhbXBsZV9uKG9jdDE5OTksIDE2OSkgDQpvY3QyMDAwIDwtIHN1YnNldChiYWNrbm8xLCB5ZWFyID09ICIyMDAwIiAmIG1vbnRoID09ICIxMCIpDQpvY3QyMDAwIDwtIHNhbXBsZV9uKG9jdDIwMDAsIDU5MCkgDQpvY3QyMDAxIDwtIHN1YnNldChiYWNrbm8xLCB5ZWFyID09ICIyMDAxIiAmIG1vbnRoID09ICIxMCIpDQpvY3QyMDAxIDwtIHNhbXBsZV9uKG9jdDIwMDEsIDQwNSkNCm9jdDIwMDIgPC0gc3Vic2V0KGJhY2tubzEsIHllYXIgPT0gIjIwMDIiICYgbW9udGggPT0gIjEwIikNCm9jdDIwMDIgPC0gc2FtcGxlX24ob2N0MjAwMiwgNjI0KQ0Kb2N0MjAwMyA8LSBzdWJzZXQoYmFja25vMSwgeWVhciA9PSAiMjAwMyIgJiBtb250aCA9PSAiMTAiKQ0Kb2N0MjAwMyA8LSBzYW1wbGVfbihvY3QyMDAzLCA1OTApDQpvY3QyMDA0IDwtIHN1YnNldChiYWNrbm8xLCB5ZWFyID09ICIyMDA0IiAmIG1vbnRoID09ICIxMCIpDQpvY3QyMDA0IDwtIHNhbXBsZV9uKG9jdDIwMDQsIDQ3MikNCm9jdDIwMDUgPC0gc3Vic2V0KGJhY2tubzEsIHllYXIgPT0gIjIwMDUiICYgbW9udGggPT0gIjEwIikNCm9jdDIwMDUgPC0gc2FtcGxlX24ob2N0MjAwNSwgNzc2KQ0Kb2N0MjAwNiA8LSBzdWJzZXQoYmFja25vMSwgeWVhciA9PSAiMjAwNiIgJiBtb250aCA9PSAiMTAiKQ0Kb2N0MjAwNiA8LSBzYW1wbGVfbihvY3QyMDA2LCAxMDk2KQ0Kb2N0MjAwNyA8LSBzdWJzZXQoYmFja25vMSwgeWVhciA9PSAiMjAwNyIgJiBtb250aCA9PSAiMTAiKQ0Kb2N0MjAwNyA8LSBzYW1wbGVfbihvY3QyMDA3LCA2MjQpDQpvY3QyMDA4IDwtIHN1YnNldChiYWNrbm8xLCB5ZWFyID09ICIyMDA4IiAmIG1vbnRoID09ICIxMCIpDQpvY3QyMDA4IDwtIHNhbXBsZV9uKG9jdDIwMDgsIDQ1NSkNCm9jdDIwMDkgPC0gc3Vic2V0KGJhY2tubzEsIHllYXIgPT0gIjIwMDkiICYgbW9udGggPT0gIjEwIikNCm9jdDIwMDkgPC0gc2FtcGxlX24ob2N0MjAwOSwgNTU2KQ0Kb2N0MjAxMCA8LSBzdWJzZXQoYmFja25vMSwgeWVhciA9PSAiMjAxMCIgJiBtb250aCA9PSAiMTAiKQ0Kb2N0MjAxMCA8LSBzYW1wbGVfbihvY3QyMDEwLCAxMDk2KQ0Kb2N0MjAxMSA8LSBzdWJzZXQoYmFja25vMSwgeWVhciA9PSAiMjAxMSIgJiBtb250aCA9PSAiMTAiKQ0Kb2N0MjAxMSA8LSBzYW1wbGVfbihvY3QyMDExLCAxMDYyKQ0Kb2N0MjAxMyA8LSBzdWJzZXQoYmFja25vMSwgeWVhciA9PSAiMjAxMyIgJiBtb250aCA9PSAiMTAiKQ0Kb2N0MjAxMyA8LSBzYW1wbGVfbihvY3QyMDEzLCAxMTkpDQpvY3QyMDE0IDwtIHN1YnNldChiYWNrbm8xLCB5ZWFyID09ICIyMDE0IiAmIG1vbnRoID09ICIxMCIpDQpvY3QyMDE0IDwtIHNhbXBsZV9uKG9jdDIwMTQsIDUxKQ0Kb2N0IDwtIHJiaW5kKG9jdDE5OTgsIG9jdDE5OTksIG9jdDIwMDAsIG9jdDIwMDEsIG9jdDIwMDIsIG9jdDIwMDMsIG9jdDIwMDQsIG9jdDIwMDUsIG9jdDIwMDYsIG9jdDIwMDcsIG9jdDIwMDgsIG9jdDIwMDksIG9jdDIwMTAsIG9jdDIwMTEsIG9jdDIwMTMsIG9jdDIwMTQpDQpgYGANCg0KTm92DQoxOTk4CTExMjMNCjE5OTkJODM1DQoyMDAwCTEwMjUNCjIwMDEJNDk1DQoyMDAyCTQyMA0KMjAwMwkzMTENCjIwMDQJNjA0DQoyMDA1CTg1OA0KMjAwNgk2MTYNCjIwMDcJNTUzDQoyMDA4CTc0OA0KMjAwOQk5MTUNCjIwMTAJODc1DQoyMDExCTU5Mw0KMjAxMwkxMg0KMjAxNQkxNw0KDQpgYGB7cn0NCm5vdjE5OTggPC0gc3Vic2V0KGJhY2tubzEsIHllYXIgPT0gIjE5OTgiICYgbW9udGggPT0gIjExIikNCm5vdjE5OTggPC0gc2FtcGxlX24obm92MTk5OCwgMTEyMykgDQpub3YxOTk5IDwtIHN1YnNldChiYWNrbm8xLCB5ZWFyID09ICIxOTk5IiAmIG1vbnRoID09ICIxMSIpDQpub3YxOTk5IDwtIHNhbXBsZV9uKG5vdjE5OTksIDgzNSkgDQpub3YyMDAwIDwtIHN1YnNldChiYWNrbm8xLCB5ZWFyID09ICIyMDAwIiAmIG1vbnRoID09ICIxMSIpDQpub3YyMDAwIDwtIHNhbXBsZV9uKG5vdjIwMDAsIDEwMjUpIA0Kbm92MjAwMSA8LSBzdWJzZXQoYmFja25vMSwgeWVhciA9PSAiMjAwMSIgJiBtb250aCA9PSAiMTEiKQ0Kbm92MjAwMSA8LSBzYW1wbGVfbihub3YyMDAxLCA0OTUpDQpub3YyMDAyIDwtIHN1YnNldChiYWNrbm8xLCB5ZWFyID09ICIyMDAyIiAmIG1vbnRoID09ICIxMSIpDQpub3YyMDAyIDwtIHNhbXBsZV9uKG5vdjIwMDIsIDQyMCkNCm5vdjIwMDMgPC0gc3Vic2V0KGJhY2tubzEsIHllYXIgPT0gIjIwMDMiICYgbW9udGggPT0gIjExIikNCm5vdjIwMDMgPC0gc2FtcGxlX24obm92MjAwMywgMzExKQ0Kbm92MjAwNCA8LSBzdWJzZXQoYmFja25vMSwgeWVhciA9PSAiMjAwNCIgJiBtb250aCA9PSAiMTEiKQ0Kbm92MjAwNCA8LSBzYW1wbGVfbihub3YyMDA0LCA2MDQpDQpub3YyMDA1IDwtIHN1YnNldChiYWNrbm8xLCB5ZWFyID09ICIyMDA1IiAmIG1vbnRoID09ICIxMSIpDQpub3YyMDA1IDwtIHNhbXBsZV9uKG5vdjIwMDUsIDg1OCkNCm5vdjIwMDYgPC0gc3Vic2V0KGJhY2tubzEsIHllYXIgPT0gIjIwMDYiICYgbW9udGggPT0gIjExIikNCm5vdjIwMDYgPC0gc2FtcGxlX24obm92MjAwNiwgNjE2KQ0Kbm92MjAwNyA8LSBzdWJzZXQoYmFja25vMSwgeWVhciA9PSAiMjAwNyIgJiBtb250aCA9PSAiMTEiKQ0Kbm92MjAwNyA8LSBzYW1wbGVfbihub3YyMDA3LCA1NTMpDQpub3YyMDA4IDwtIHN1YnNldChiYWNrbm8xLCB5ZWFyID09ICIyMDA4IiAmIG1vbnRoID09ICIxMSIpDQpub3YyMDA4IDwtIHNhbXBsZV9uKG5vdjIwMDgsIDc0OCkNCm5vdjIwMDkgPC0gc3Vic2V0KGJhY2tubzEsIHllYXIgPT0gIjIwMDkiICYgbW9udGggPT0gIjExIikNCm5vdjIwMDkgPC0gc2FtcGxlX24obm92MjAwOSwgOTE1KQ0Kbm92MjAxMCA8LSBzdWJzZXQoYmFja25vMSwgeWVhciA9PSAiMjAxMCIgJiBtb250aCA9PSAiMTEiKQ0Kbm92MjAxMCA8LSBzYW1wbGVfbihub3YyMDEwLCA4NzUpDQpub3YyMDExIDwtIHN1YnNldChiYWNrbm8xLCB5ZWFyID09ICIyMDExIiAmIG1vbnRoID09ICIxMSIpDQpub3YyMDExIDwtIHNhbXBsZV9uKG5vdjIwMTEsIDU5MykNCm5vdjIwMTMgPC0gc3Vic2V0KGJhY2tubzEsIHllYXIgPT0gIjIwMTMiICYgbW9udGggPT0gIjExIikNCm5vdjIwMTMgPC0gc2FtcGxlX24obm92MjAxMywgMTIpDQpub3YyMDE1IDwtIHN1YnNldChiYWNrbm8xLCB5ZWFyID09ICIyMDE1IiAmIG1vbnRoID09ICIxMSIpDQpub3YyMDE1IDwtIHNhbXBsZV9uKG5vdjIwMTUsIDE3KQ0Kbm92IDwtIHJiaW5kKG5vdjE5OTgsIG5vdjE5OTksIG5vdjIwMDAsIG5vdjIwMDEsIG5vdjIwMDIsIG5vdjIwMDMsIG5vdjIwMDQsIG5vdjIwMDUsIG5vdjIwMDYsIG5vdjIwMDcsIG5vdjIwMDgsIG5vdjIwMDksIG5vdjIwMTAsIG5vdjIwMTEsIG5vdjIwMTMsIG5vdjIwMTUpDQpgYGANCg0KRGVjDQoxOTk4CTEwNw0KMTk5OQk1NTENCjIwMDAJNzI1DQoyMDAxCTE0MzANCjIwMDIJOTY2DQoyMDAzCTEwMTQNCjIwMDQJMTEwMQ0KMjAwNQk0MTYNCjIwMDYJNzgzDQoyMDA3CTgyMQ0KMjAwOAk1ODkNCjIwMDkJNDU0DQoyMDEwCTU2MA0KMjAxMQk0ODMNCg0KDQpgYGB7cn0NCmRlYzE5OTggPC0gc3Vic2V0KGJhY2tubzEsIHllYXIgPT0gIjE5OTgiICYgbW9udGggPT0gIjEyIikNCmRlYzE5OTggPC0gc2FtcGxlX24oZGVjMTk5OCwgMTA3KSANCmRlYzE5OTkgPC0gc3Vic2V0KGJhY2tubzEsIHllYXIgPT0gIjE5OTkiICYgbW9udGggPT0gIjEyIikNCmRlYzE5OTkgPC0gc2FtcGxlX24oZGVjMTk5OSwgNTUxKSANCmRlYzIwMDAgPC0gc3Vic2V0KGJhY2tubzEsIHllYXIgPT0gIjIwMDAiICYgbW9udGggPT0gIjEyIikNCmRlYzIwMDAgPC0gc2FtcGxlX24oZGVjMjAwMCwgNzI1KSANCmRlYzIwMDEgPC0gc3Vic2V0KGJhY2tubzEsIHllYXIgPT0gIjIwMDEiICYgbW9udGggPT0gIjEyIikNCmRlYzIwMDEgPC0gc2FtcGxlX24oZGVjMjAwMSwgMTQzMCkNCmRlYzIwMDIgPC0gc3Vic2V0KGJhY2tubzEsIHllYXIgPT0gIjIwMDIiICYgbW9udGggPT0gIjEyIikNCmRlYzIwMDIgPC0gc2FtcGxlX24oZGVjMjAwMiwgOTY2KQ0KZGVjMjAwMyA8LSBzdWJzZXQoYmFja25vMSwgeWVhciA9PSAiMjAwMyIgJiBtb250aCA9PSAiMTIiKQ0KZGVjMjAwMyA8LSBzYW1wbGVfbihkZWMyMDAzLCAxMDE0KQ0KZGVjMjAwNCA8LSBzdWJzZXQoYmFja25vMSwgeWVhciA9PSAiMjAwNCIgJiBtb250aCA9PSAiMTIiKQ0KZGVjMjAwNCA8LSBzYW1wbGVfbihkZWMyMDA0LCAxMTAxKQ0KZGVjMjAwNSA8LSBzdWJzZXQoYmFja25vMSwgeWVhciA9PSAiMjAwNSIgJiBtb250aCA9PSAiMTIiKQ0KZGVjMjAwNSA8LSBzYW1wbGVfbihkZWMyMDA1LCA0MTYpDQpkZWMyMDA2IDwtIHN1YnNldChiYWNrbm8xLCB5ZWFyID09ICIyMDA2IiAmIG1vbnRoID09ICIxMiIpDQpkZWMyMDA2IDwtIHNhbXBsZV9uKGRlYzIwMDYsIDc4MykNCmRlYzIwMDcgPC0gc3Vic2V0KGJhY2tubzEsIHllYXIgPT0gIjIwMDciICYgbW9udGggPT0gIjEyIikNCmRlYzIwMDcgPC0gc2FtcGxlX24oZGVjMjAwNywgODIxKQ0KZGVjMjAwOCA8LSBzdWJzZXQoYmFja25vMSwgeWVhciA9PSAiMjAwOCIgJiBtb250aCA9PSAiMTIiKQ0KZGVjMjAwOCA8LSBzYW1wbGVfbihkZWMyMDA4LCA1ODkpDQpkZWMyMDA5IDwtIHN1YnNldChiYWNrbm8xLCB5ZWFyID09ICIyMDA5IiAmIG1vbnRoID09ICIxMiIpDQpkZWMyMDA5IDwtIHNhbXBsZV9uKGRlYzIwMDksIDQ1NCkNCmRlYzIwMTAgPC0gc3Vic2V0KGJhY2tubzEsIHllYXIgPT0gIjIwMTAiICYgbW9udGggPT0gIjEyIikNCmRlYzIwMTAgPC0gc2FtcGxlX24oZGVjMjAxMCwgNTYwKQ0KZGVjMjAxMSA8LSBzdWJzZXQoYmFja25vMSwgeWVhciA9PSAiMjAxMSIgJiBtb250aCA9PSAiMTIiKQ0KZGVjMjAxMSA8LSBzYW1wbGVfbihkZWMyMDExLCA0ODMpDQpkZWMgPC0gcmJpbmQoZGVjMTk5OCwgZGVjMTk5OSwgZGVjMjAwMCwgZGVjMjAwMSwgZGVjMjAwMiwgZGVjMjAwMywgZGVjMjAwNCwgZGVjMjAwNSwgZGVjMjAwNiwgZGVjMjAwNywgZGVjMjAwOCwgZGVjMjAwOSwgZGVjMjAxMCwgZGVjMjAxMSkNCmBgYA0K